-
[MFC] 프로그램 간의 메시지 송수신 (RegisterWindowMessage, SendMEssage)C, C++/잡기장 | Notebook 2019. 11. 21. 10:03
1. 프로젝트 및 클래스 준비
1-1. MFC Application으로 Store, Customer 이름으로 프로젝트 생성
2. 메시지 등록
2-1. CStoreDlg.h, CCustomerDlg.h에 주고 받을 메시지를 전역변수로 선언
static const UINT WND_MSG = RegisterWindowMessage(_T("CallMessage"));
3. 메시지 보내기
3-1. CCustomerDlg 대화상자에 버튼(IDC_CUSTOMER_BTN) 생성
3-2. 해당 버튼의 클릭 이벤트 생성
3-3. 버튼 클릭 이벤트 함수 내에 다음 내용 작성
WPARAM wParam = 0;
LPARAM lParam = 0;
::SendMessage(HWND_BROADCAST, WND_MSG, wParam, lParam);
3-4. SendMessage 함수의 3, 4번째 파라미터는 wParam, lParam으로 임의 설정 가능
4. 메시지 받기
4-1. Store 프로젝트 -> Class View 탭 클릭 -> CStoreDlg 오른쪽 버튼 -> 속성 클릭 -> Overrides 탭 클릭
4-2. WindowProc 함수 추가 및 TODO 아래에 내용 추가
if (message == WM_MESSAGE && (HWND)wParam != this->GetSafeHwnd())
{
CString strMsg = _T("");
strMsg.Format(_T("PhoneNumber : %d"), (int)lParam);
::AfxMessageBox(strMsg);
}
5. 동작 확인
5-1. Store, Customer 프로그램 실행
5-2. Customer 프로그램의 버튼 클릭
5-3. Store 프로그램에서 메시지 박스 확인
'C, C++ > 잡기장 | Notebook' 카테고리의 다른 글
[C/C++] 파일 입출력 (fwrite, fread) (0) 2019.11.26 [MFC] CString <-> char* 변환 (Unicode Character Set) (0) 2019.11.25 [MFC] Date Time Picker 컨트롤의 날짜 형식 변경 (0) 2019.10.01 [MFC] Cannot obtain CLSID from ProgID 오류 (0) 2019.09.26 [MFC] 리스트컨트롤 사용법 (0) 2019.09.24 댓글