|
간단한 예제 입니다.
폼에 메모컴포넌트와 버튼 컴포넌트를 올려 놓고 아래와 같이 코딩하세용
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Memo1Enter(TObject *Sender)
{
HideCaret(Memo1->Handle); // 캐럿을 숨겨라
Button1->SetFocus(); // 뒤에서 설명
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HideCaret(Memo1->Handle);
}
//---------------------------------------------------------------------------
윈도우 핸들은 (HWND)는 일정한 메모리 영역에 대한 핸들 즉, 운영권을 말하죠
참고로 이 핸들은 윈도우즈라는 운영체제에서 만들어낸 독특한 구조로써
윈도우 운전을 하는 사람은 누구나 이 핸들을 돌려야 하죠.
그래서 이 핸들을 운영하는 방법을 잘 연습해야 합니다.
빌더는 이런 점에서는 초보자가 접근하기 조금 힘든데여.
모든 컴포넌트(윈도우)에는 이 핸들이 다 있습니다.
이 핸들을 얻으면 이제 이 컴포넌트는 이제 우리 것입니다.
마음대로 주물룰 수가 있다는 거죠.
윈도우는 멀티프로세싱을 하기 때문에 메모리 문제가 대두되었고
실행되고 있는 프로그램을 전부 주기억장치 메모리에 적재하는 것은
무리라고 생각했습니다.
그래서 일체의 주기억 장치의 메모리 공간으로의 접근을 막고 사용자에게는
이 메모리를 운영할 수 있는 핸들만을 주게 되었죠
물론 장점일 수도 있고 단점일 수도 있지만.
의도하는 바는 좋았지만... (쩝)
너무 서론이 길었나요
하여튼 메모에서 캐럿을 빼았으려고 해봤더니 진짜 안되더군요.
그래서 메모에서 Enter라는 메시를 코딩해서 메모에 Focus가 할당되면
째빨리 다른 컴포넌트에 히 포커스를 주어야 캐럿이 나타나지 않더군요...
그럼 즐프하시고 궁금한점 있으면 멜 때려요
|