在mfc中的对话框之间传递值

时间:2013-09-07 19:57:13

标签: c++ mfc

当使用MFC时,如果我有一个主对话框,那么我从main调用另一个对话框,将什么消息发送到主对话框让它知道它有焦点,是WM_SETFOCUS()?如果是这样,需要什么样的参数?我遇到的问题是,在子对话框中选择了一个值,我希望它一旦(子对话框)关闭就复制到主对话框中的编辑控件。现在,我有它所以第二个对话框将其值复制到一个全局变量,但是一旦第二个对话框关闭,我想在主对话框中获取全局变量并显示在编辑控件中。

2 个答案:

答案 0 :(得分:3)

您还可以在子对话框中使用成员变量,例如

CChildDialogBox dlg;
if (dlg.DoModal() == IDOK) // child dialog saves the value in a CString member variable m_str
{   GetDlgItem(IDC_EDIT1)->SetWindowText(dlg.m_str);
}

这个MSDN article描述了如何在对话框中设置连接到控件的成员变量。

答案 1 :(得分:0)

我意识到我的问题,真的是初学者的错误,我在DoModal调用之后会立即退出函数。我不知道在函数结束之前,我可以在调用之后执行其他代码(将编辑控件变量赋值为新值,然后是SetWindowText)。