일반 폼에 에디터 박스와 버튼이 있습니다.
에디터 박스에서 문자를 입력하고 탭 키를 눌렀을때 자료만 갱신되고
에디터 박스의 내용이 비워집니다. 그런데 에디터 박스에서 엔터키를
치면 프로그램이 종료되게 하고 싶습니다. 어떻게 처리 해야 할지는
알지만 생각처럼 쉽지가 않네요..
문제는 탭키를 눌렀을경우 키 프레스 이벤트에 #9 를 확인해서
해당 문장을 실행하는데 탭키가 눌러지면 다음 탭오더에 해당하는
컴포넌트에 포커스가 갑니다. 탭스탑두 TRUE루 설정했는데..
꼭 답변 주세요... 에디터 박스에서 탭키 처리가 안되네요..
OnKeyDown에서 처리하셔야 합니다.
키보드 이벤트 발생 메카니즘을 조금 설명드리자면, OnKeyDown 이벤트가
발생한 후에, 눌린 키에 대한 해석을 하여, 제어키가 아닌 문자키를 누른
경우 OnKeyPress 이벤트에 해당 문자를 넘겨주게 됩니다.
그런데, 에디트 박스에서 탭키는 문자키가 아니라, 제어키로 동작을 하기
때문에, OnKeyPress 이벤트가 발생하지 않게 됩니다. 엔터키도 마찬가지지요.
따라서, 특정 제어키가 눌렸을 때의 동작을 바꾸고 싶으시면, OnKeyDown
이벤트에서 해야만 합니다.
주의할 점은 OnKeyDown의 Key 값은 Virtual Key Code로 탭은 VK_TAB이고
엔터는 VK_ENTER 입니다. 두 상수 모두 Windows 유닛에 정의되어 있고,
해당 유닛을 열어보면, 다른 키 코드값도 알 수 있을 겁니다.
도움이 되셨나요?