MFC 模态对话框_EXEC

Frame 消息:

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    ON_WM_CREATE()
    ON_COMMAND(ID_DIALOG_EXEC, &CMainFrame::OnDialogExec)
    ON_COMMAND(ID_DIALOG_SHOW, &CMainFrame::OnDialogShow)
    ON_COMMAND(ID_DIALOG_32773, &CMainFrame::OnDialog32773)
END_MESSAGE_MAP()

头文件:

private:
    CDialog dlg;

OnCreate:

dlg.Create(IDD_DIALOG2); // dlg  Create

ON_COMMAND:

// 模态对话框
void CMainFrame::OnDialogExec()
{
    // 创建对话框
    CDialog dlg_(IDD_DIALOG1);
    // 运行
    dlg_.DoModal(); // 阻塞
}

// 非模态对话框
void CMainFrame::OnDialogShow()
{
    //CDialog dlg; // 用成员变量,不然释放掉
    //dlg.Create(IDD_DIALOG2); // 只能创建一次,所以放在在Oncreate里面去
    dlg.ShowWindow(SW_SHOWNORMAL);
}


void CMainFrame::OnDialog32773()
{
    // 在此添加命令处理程序代码
    MyDialog my_dlg;
    my_dlg.DoModal();
}

MFC 模态对话框_命令处理程序_02

▲ 添加 MFC 类

MFC 模态对话框_EXEC_03


MFC 模态对话框_EXEC_04