在 MFC(Microsoft Foundation Classes)中,CDialog::DoModal 是用于显示模态对话框的公共方法。模态对话框是一种弹出式窗口,它将阻塞用户与应用程序的其他部分的交互,直到对话框关闭。

以下是 CDialog::DoModal 的声明:
INT_PTR DoModal();

DoModal 函数返回一个 INT_PTR 值,通常是对话框中的按钮 ID,表示对话框的返回状态。它可以用于确定用户在对话框中点击的是哪个按钮,或者是否对话框被取消等。

以下是一个简单的示例:
// 在某个成员函数中使用 DoModal 方法
void CMyDialogAppDlg::OnButtonShowDialog()
{
    CMyDialog dlg;
    INT_PTR nResponse = dlg.DoModal();

    // 根据用户的响应进行处理
    switch (nResponse)
    {
    case IDOK:
        // 用户点击了确定按钮
        // 可以执行相应的操作
        break;
    case IDCANCEL:
        // 用户点击了取消按钮或关闭按钮
        // 可以执行相应的操作
        break;
    // 其他按钮的处理
    }
}

在这个示例中,CMyDialog 是派生自 CDialog 的对话框类。调用 DoModal 后,根据用户的响应,可以执行相应的操作。IDOK 和 IDCANCEL 是对话框的默认按钮标识符,表示用户点击了确定或取消按钮。

使用 DoModal 的好处是,它提供了一种简单的方式来获取用户在对话框中的操作,并在对话框关闭后继续执行其他代码。


转载请注明出处:http://www.zyzy.cn/article/detail/17330/MFC/CDialog