티스토리 뷰

Visual Studio 2012


자식 다이얼로그에서 부모와 자식에게 각각 메시지 보내기(SendMessage활용)


- 자식 1에서 부모와 자식 2에게 각각 메시지 보내고 받은 메세지 처리하기


* 자식 2에게 바로 보내려면 부모의 클래스를 포인터로 가지고 있어야함

* 아래 링크 참조

[MFC] 자식 다이얼로그에서 부모 클래스 접근하기


1. 보낼 메시지 설정(자식1, 자식2, 부모에 다 정의 해줘야함)


#define UWM_CUSTOM1 (WM_USER+1)


2. 부모와 자식2에 각각 사용자 지정 메시지 추가(메시지 받아서 처리할 함수)


*프로젝트 - 클래스 마법사 - 클래스선택(부모,자식2) - 메시지탭 - 사용자 지정 메시지 추가



3. 사용자 지정 메시지 함수 구현(부모, 자식2 각각 구현)


//CModelessDDlg.cpp
afx_msg LRESULT CModelessDDlg::OnUwmCustom1(WPARAM wParam, LPARAM lParam)
{
	MessageBox("Received message!","",0);
	return 0;
}


4. 자식1 다이얼로그에서 메시지 보내기


// Dialog1.cpp : 구현 파일입니다.
//
void CDialog1::OnBnClickedBtnDbread()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	::SendMessage(m_pDlg->m_hWnd,UWM_CUSTOM1,0,(LPARAM)&m_ctrList);  //부모에게 메세지 보내기

	::SendMessage(m_pDlg->m_dlg2->m_hWnd,UWM_CUSTOM1,0,(LPARAM)&m_ctrList);  //자식2에게 메세지 보내기
}

댓글