|
안녕하세여?
TCustomTabControl을 상속받은 탭컨트롤이나 페이지 컨트롤의 경우..
서브클래싱 했을 경우에....
탭컨트롤이나 페이지 컨트롤의 WM_LBUTTONDOWN을 캣치 하려고 하는데
안 잡히는군요..
예를 들면..
여러 컨트롤들을 서브클래싱해서 하나의 메시지처리 함수를 거치게끔 한 상태에서
메시지를 발생시킨 컨트롤을 찾아서 그게 TCustomTabControl에서 상속받은거고..
WM_LBUTTONDOWN일 경우.. 머 이런 조건을 주는데..
문제는 탭컨트롤과 페이지컨트롤의 클라이언트 영역을 아무리 눌러도 이놈이
메시지를 발생시키지 않습니다.
제 추측으로는... 탭 컨트롤과 페이지 컨트롤의 경우는.. 그냥 컨트롤이라기 보다는
내부에 탭이나 페이지가 생겨야 하는 특이한 컨트롤이기 때문에..
TabControl.Handle로 구해지는 윈도우 핸들외에..
클라이언트 영역 부분에 다른 윈도우가 들어가 있는 방식이 아닌가 하는 건데요.
맞는지요.. 그렇다면 어떻게 구할 수 있을지요?
그리고 테스트삼아서.. TabControl의 OnMouseDown 이벤트 핸들러를 작성해 보았더니,
역시나 아무런 반응이 없더군요.
컨트롤의 핸들(TabControl.Handle)외에 내부적으로 클라이언트 영역에 뭔가 다른
윈도우가 들어가 있는 듯 싶네요.
이걸 캣치할 수 있는 방법 아시면 가르쳐주세요.
|