您的位置:首页 > 其它

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

2017-05-10 14:56 274 查看
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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息