MFC 两个对话框直接的消息传递

A发送对话框代码:


定义宏:#define WM_MyMessage WM_USER+1000;


消息映射:ON_COMMAND(ID_FILE_RECONNECT, &CDataBaseTool_UIDlg::OnFileReconnect)


init_connect *m_init_connect_msg;   //声明一个B接受对话框指针
void SetInit_connect(init_connect &init){ m_init_connect_msg = &init; }   //初始化指针

afx_msg void OnFileReconnect();            //消息响应


void CDataBaseTool_UIDlg::OnFileReconnect() //函数实现
{
m_init_connect_msg->SendMessage(WM_MyMessage, 1, 1);
}


如果B是A的父窗口可以之前:

//HWND hWnd = AfxGetApp()->GetMainWnd()->GetSafeHwnd(); //第一种
::SendMessage(::GetParent(m_hWnd), WM_ParsaveDlg_event, a, b); //第二种


B接受对话框代码:


afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);   响应函数


ON_MESSAGE(WM_MyMessage, OnMyMessage) 消息映射


具体实现:

CDataBaseTool_UIDlg dlg;
dlg.SetInit_connect(*this);//一定要初始化;
INT_PTR nResponse = dlg.DoModal();

你可能感兴趣的:(MFC)