C언어,ARM

MFC에서 WM_COMMAND처리 방법

안녕1999 2019. 12. 22. 23:40

MFC에서 WM_COMMAND처리 방법
--------------------------------------------------
MFC에서 PreTranslateMessage에서는 WM_COMMAND를 처리할 수 없다.
클래스 위져드(Ctrl+W)에서 OnCommand함수 추가하여 처리.



BN_PUSHED, BN_UNPUSHED 처리방법
--------------------------------------------------
1) MFC에서 OnCommand추가해도 응답이 없음.
   버튼은 BS_NOTIFY스타일로 생성해야한다고함.
   리소스 버튼에서 Notify체크해도 안됨.

2) OnTimer에서 각 버튼의 상태 체크
   버튼이 눌린 상태에서는 타이머 동작이 안되는듯.

3) 부모윈도우를 서브클래싱하여 WM_LBUTTONUP/WM_LBUTTONDOWN 처리
   부모윈도우의 빈곳을 클릭할때만 메세지 발생.
   버튼 클릭시 메세지 처리 불가.

4) 모든 버튼을 서브클래싱하여 WM_LBUTTONUP/WM_LBUTTONDOWN 처리
   복잡

5) 버튼을 직접 그리고, 마우스처리
   더 복잡