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); // 리턴 메세지를 받지 못해도 진행