说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在两个对话框之间如何传递消息?

编辑:说三道四文库 发布时间:2018-02-20 02:21
HTML文档下载 WORD文档下载 PDF文档下载
在两个对话框之间如何传递消息? 我想从第一个对话框中的组合框中得到用户输入,在第二个对话框中用到,这个消息该如何传递?
那么第一个对话框就不能模式显示,应用无模式的。
保存該對話框的指針,然后SendMessage即可
你的意思不明白,我理解你的两个窗口不是同时打开的??
1.第二个对话框为模式对话框时,无法实现同步
2.我想你指的是传递数据而非消息
如果是消息的话可用pDlg2->PostMessage
数据的话可以用pDlg2->SetValue(//Your Values here)
其中SetValue为pDlg2中的public function,可以把两个对话框中共用的数据设为成员变量,在该函数中赋值
发送消息端.
CString str;
str.Format=_T("组合框的字符串");
PostMessage(WM_MSG_INPUT, 0, (LPARAM)AllocBuffer(str));

接收消息你知道了,不用写了吧.



LONG OnInput(WPARAM wParam, LPARAM lParam)
{
char* pMsg = (char*) lParam;
OutMessage(pMsg);//处理消息发来的字符串.
delete pMsg;

}
还是写了吧.
LONG OnInput(WPARAM wParam, LPARAM lParam)
{
char* pMsg = (char*) lParam;
OutMessage(pMsg);//处理消息发来的字符串.
delete pMsg;

}
要同时出现至少要有一个是无模式对话框!而你第一个要把控件的内容给第二个对话框,所以第二个必须是无模式的!
在第一个对话框创建时将第二个对话框的指针给它(用个指针变量),这样在第一个对话框的内容改变之后将改变之后的值给第二个对话框;
如果dlg2中的IDC_EDIT1来接收:
m_pDlg2->SetDlgItemText(IDC_EDIT1,str);//其中m_pDlg2为第二个对话框类的指针,str为改变之后的值
首先谢谢各位大侠先^_^,我把我得问题说清楚些。第一个对话框相当于界面,用户有些东西要选择,之后点击确定就进入第二个对话框,而在第一个界面选定的内容这时要在第二个对话框中用到。
你在文档类或者应用类,设定一个交换的中间变量(两个对话框都可以访问到的啊),然后就可以了,当第二个DoModal==IDOK的时候,你就把你的值保存到这些中间变量,然后更新第一个对话框的内容。
在第一个对话矿中构造变量(类型为地二个对话矿的引用)
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘