|
무슨 키 처리를 하시려는 것인지 구체적으로 말씀해주셔야 할 거 같은데요.
처음 질문하실 때는 일반적인 키 처리를 하실 것처럼 말씀하셨는데, 이번에 다시 쓰신 내용을 보니 탭키와 방향키를 말씀하시는군요. 포커스 이동을 위한 탭키와 방향키는 원래 WM_GETDLGCODE에서 처리하는 것이 맞습니다. 그 관련 작업을 폼에서 처리하는 거구요.
기본적으로는 후킹까지 쓰는 것은 아니고 그냥 메시지 핸들러를 만드는 것이 보통입니다. 후킹은 배보다 배꼽이 더 크죠.
TWinControl의 OnkeyDown에 무슨 동작을 기대하셨는지 말씀을 안해주셔서 그 관련 답변을 드릴 수가 없네요.
어떤 키가 들어왔을 때 어떻게 동작하게 하고 싶다, 그렇게 구체적으로 말씀하셔야 답변이 가능할 듯 합니다.
그럼...
김재원 님이 쓰신 글 :
: 답변 감사합니다.
: 일단 문제는 찾았습니다.
: 답변하신 내용중에 있는 문제인데, 폼에 있는 컴포넌트에서 방향키를 누르면 포커스가 옮겨가는 처리를 해당 컴포넌트가 아닌 폼에서 처리한다더군요.. 방향키와 탭키는 기본적으로 다이얼로그가 처리해서 WM_GETDLGCODE를 후킹해서 해결하였습니다.
:
: 그런데 한가지 궁금한 것이, TCustomPanel에는 OnkeyDown 헨들러가 없지만 TWinControl에는 있기 때문에, 이놈을 오버라이딩 하면 처리가 가능한거 아닌가요? 실제로 구현하였을 때 키다운 이벤트로 들어오던데..
: 혹시 다른 의미인지..
:
: 아, 그리고 밑에 다른 질문인 컴포넌트 위에 컴포넌트가 올라가 있는 상황에서 밑에 있는 컴포넌트가 자신 위에 있는 컴포넌트 영역을 포함하게 그리는 방법은 없더군요.. 굳이 하자면 해당 컴포넌트에 메세지를 날려서 그 컴포넌트가 자신의 영역에 그려주는 방법밖엔 없다네요..
|