본문 바로가기
프로그래머/프로그래밍

사용자 정의 메시지 핸들러

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;
}  


'프로그래머 > 프로그래밍' 카테고리의 다른 글

문자열 코드 변환 방법 및 기초 지식 (VC++)  (0) 2008.10.30
Singleton 패턴  (0) 2008.10.23
WSAAsyncSelect 모델 정의  (0) 2008.10.22
iBatis의 장점  (2) 2008.10.20
트래이 아이콘 프로그램 만들기  (0) 2008.10.14

댓글