본문 바로가기
프로그래밍언어/C++, MFC

사용자 정의 메시지 핸들러

by plog 2008. 10. 13.

<사용자 메시지 구현하기>
1.클래스의 헤더파일에 메시지 정의
ex)

#define WM_MY_BTN (WM_USER+3) 
 
2. 클래스의 헤더부분 하단에 DECLARE_MESSAGE_MAP에 SendMessage가
호출할 함수를 afx_msg 붙여서 넣습니다. (함수 정의라 보면됩니다.)
ex)
protected:
 // Generated message map functions
 //{{AFX_MSG(CProgressBar_TWO)
 ......
 afx_msg BOOL OnMyBtn();
 ......
 //}}AFX_MSG
  DECLARE_MESSAGE_MAP()

 

3.클래스 CPP부분으로 와서 BEGIN_MESSAGE_MAP에 메시지와 함수를 연결합니다.
BEGIN_MESSAGE_MAP(CFontTestView, CView)
 //{{AFX_MSG_MAP(CFontTestView)
 ON_WM_MOUSEMOVE()
 ON_WM_ERASEBKGND()
 //}}AFX_MSG_MAP
 // Standard printing commands
 ON_MESSAGE(WM_MY_BTN,OnMyBtn)
END_MESSAGE_MAP()

4.CPP에 함수를 만듭니다.
툴에서 제공되어지는 자동 함수 생성방법을 이용하지말고
직접 함수 부분을 구현 해야 합니다. 그렇지 않으면 동일한 함수 있다는 오류 발생

BOOL CFontTestView::OnMyBtn()
{
 return true;
}  


댓글