CDialog::DoModal
调用该成员函数的调用模式对话框并返回对话框结果,在执行。
virtual INT_PTR DoModal( );
返回值
指定 nResult 参数的值传递给 CDialog::EndDialog 成员函数,用于关闭对话框的 int 值。返回值为– 1,如果函数不能创建对话框中,或 IDABORT,如果某个其他错误,则为;在 输出窗口 将包含来自 GetLastError情况下的错误信息。
备注
此成员函数处理与用户的所有交互,在对话框处于活动状态时。正是这使得对话框模式;即用户不能与其他窗口交互的方式,直到对话框关闭的。
如果用户单击其中一个对话框中的普通按钮,例如OK (确定)或cancel,一个消息处理程序成员函数,例如 OnOK 或 OnCancel,调用以尝试关闭对话框。默认 OnOK 成员函数将验证并更新"对话框数据和关闭包含结果的 IDOK对话框,因此,默认 OnCancel 成员函数将关闭包含结果的 IDCANCEL 对话框,而无需验证或更新"对话框数据。您可以重写这些消息处理函数更改其行为。
说明 |
---|
PreTranslateMessage 为模式对话框消息过程将立即调用。 |
示例
void CMyDialog::OnMenuShowAboutDialog()
{
// Construct the dialog box passing the
// ID of the dialog template resource
CDialog aboutDlg(IDD_ABOUTBOX);
// Create and show the dialog box
INT_PTR nRet = -1;
nRet = aboutDlg.DoModal();
// Handle the return value from DoModal
switch (nRet)
{
case -1:
AfxMessageBox(_T("Dialog box could not be created!"));
break;
case IDABORT:
// Do something
break;
case IDOK:
// Do something
break;
case IDCANCEL:
// Do something
break;
default:
// Do something
break;
};
}
要求
Header: afxwin.h