【问题标题】:Passing values between dialog boxes in mfc在 mfc 中的对话框之间传递值
【发布时间】:2013-09-10 09:20:13
【问题描述】:

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

【问题讨论】:

  • 您的辅助对话框是模态对话框还是非模态对话框?

标签: c++ mfc


【解决方案1】:

也可以在子对话框中使用成员变量,比如

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 描述了如何在对话框中设置连接到控件的成员变量。

【讨论】:

  • 我已经尝试过了,但即使使用新值更新了变量,我仍然无法让它显示在编辑控件中。情况就是这样,我的主对话框有一个选项来加载预加载的数字,而不是手动输入它们。因此,当用户从弹出对话框窗口中选择一个数字时,我希望它在列表关闭时显示在主对话框窗口中。主对话框是否收到一条消息,它具有焦点?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2011-07-25
    • 1970-01-01
    • 2016-06-10
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多