어플리케이션이 포커스를 잃을 때를 알려면 다음과 같이 하시면 됩니다.
박지훈님이 예전에 답변으로 쓰셨던 내용이 있어 참조했습니다.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=7165
-- Header
// 헤더에 이벤트핸들러 함수를 선언하시고요.
void __fastcall AppDeactivate(TObject *Sender);
-- Source
// FormCreate에서 이벤트핸들러를 지정해줍니다.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->OnDeactivate = AppDeactivate;
}
//---------------------------------------------------------------------------
// 이 함수는 직접 만들어 주세요.
void __fastcall TForm1::AppDeactivate(TObject *Sender)
{
// 어플리케이션이 비활성화되는 순간임
if(String(ActiveControl->ClassName()) == "TEdit") {
// 현재 포커스가 있는 컨트롤이 "TEdit"인지 확인합니다.
ShowMessage("AppDeactivate - TEdit");
}
}
//---------------------------------------------------------------------------
이렇게 하시고.. TEdit의 OnExit와 함께 사용하시면 될 것 같습니다.
초보 님이 쓰신 글 :
: 답변 감사합니다.
:
: 그런데요 OnExit는 키 커서가 에디터창에서
: 포커스를 잃을때 사용하는것은 맞지만
: 메인 프레임의 다른 컴포넌트로 포커스가 이동될때만 발생하고요
:
: 메모장. 또는 익스플로러 같이 아예 다른 프로그램으로 키 커서를
: 옮기면 발생하지가 않아서요,,,,
:
: 이것때문에 고민이 많습니다.ㅜㅜ
:
: 해결 방법이 없는건가요?,,,,
|