Button, CheckBox 등의 경우 키를 받으면 VCL 레벨에서 다른 메세지로 교환을 시켜 버립니다. 보통 CM_CHILDKEY 나 CM_DIALOGKEY 메세지로 변환이 됩니다.
이 변환된 메세지는 Application->OnMessage에서 정의한 핸들러에서 읽어올 수 있습니다. 핸들러에서 해당 메세지를 따로따로 처리해 주시면 됩니다. 물론, 이 메세지는 전체 어플리케이션에 똑같이 적용됩니다. Sender 가 없으므로, Form1->ActiveControl 등으로 어떤 객체에서 처리가 이루어 졌는지 알아내셔야 합니다.
OnMessage에서 처리하는 방법은 아래 게시물이 도움이 되실지 모르겠네요.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=17968
질문요! 님이 쓰신 글 :
: 항상 답변주셔서 감사합니다.
:
: 근데 아직 덜 해결된게 있는데요.. 다른 키들은 다 되는데.. 유독 방향키 를 입력했을때는.. 버튼의 포커스가 이동되는 현상만 일어나고 KEYDOWN 함수는 호출하지 않는데요.. 방향키를 눌렀을때 포커스 이동말고 함수를 호출하는 방법이 없을까요?
|