如何在MFC中访问模式对话框的项目?

时间:2011-05-25 09:02:39

标签: visual-c++ mfc

我只想访问模态对话框中的对象。以下示例将准确解释我正在尝试做什么:

(此代码无效)

    CAddDlg dlg;
CString S;
dlg.DoModal();
dlg.GetDlgItem(IDC_NAME)->GetWindowTextW(S);
MessageBox(S);

但断言将失败,我无法获得Edit控件的文本。 我该怎么办?

1 个答案:

答案 0 :(得分:1)

您无法从外部访问模态对话框的控件。即使你可以,这也不是一个好主意。对话框的调用者不应该知道如何在对话框中表示数据。现在的编辑控件可能是将来的列表框。

方法是声明在DoModal()之后调用的getter函数(如果它返回IDOK)并在那里获取值。

检查Can I return a custom value from a dialog box's DoModal function?以获取一些示例