我只想访问模态对话框中的对象。以下示例将准确解释我正在尝试做什么:
(此代码无效)
CAddDlg dlg;
CString S;
dlg.DoModal();
dlg.GetDlgItem(IDC_NAME)->GetWindowTextW(S);
MessageBox(S);
但断言将失败,我无法获得Edit控件的文本。 我该怎么办?
答案 0 :(得分:1)
您无法从外部访问模态对话框的控件。即使你可以,这也不是一个好主意。对话框的调用者不应该知道如何在对话框中表示数据。现在的编辑控件可能是将来的列表框。
方法是声明在DoModal()
之后调用的getter函数(如果它返回IDOK)并在那里获取值。
检查Can I return a custom value from a dialog box's DoModal function?以获取一些示例