티스토리 뷰

MFC

[MFC] 사용자 정의 메세지 사용법

개발하는꼬물이 2017. 3. 15. 11:43

1. 사용자 정의 메세지를 stdafx.h. 파일에 추가 


#define WM_USER_MESSAGE1 (WM_USER + 1)


2. 메세지를 받았을 때 실행할 함수를 CTestDlg.h에 선언


afx_msg LRESULT OnUserFunc(WPARAM wParam, LPARAM lParam);


3. SendMessage(), PostMessage() 를 통해 메세지를 받으려는 다이얼로그.cpp 파일의 메세지 맵에 아래 코드 추가 


BEGIN_MESSAGE_MAP(CTestDlg, CDialog)

ON_MESSAGE(WM_USER_MESSAGE1 , OnRunFunc)  

// ON_MESSAGE(사용자 정의 메세지, 메세지를 받았을 때 실행할 함수명)

END_MESSAGE_MAP()


4. 메세지를 받는 다이얼로그의 cpp 파일에 메세지를 받았을 때 실행할 함수 정의


LRESULT CTestDlg::OnUserFunc(WPARAM wParam, LPARAM lParam)

{

// 수행할 작업 ( lParam : 넘겨준 값)


return 0;

}


5. SendMessage, PostMessage를 사용하여 메세지 전달 


SendMessage(WM_USER_MESSAGE1, 100, 200);  // 리턴 메세지를 받아야 다음 코드를 실행 

PostMessage(WM_USER_MESSAGE1, 100, 200);   // 리턴 메세지를 받지 못해도 진행



댓글