在MFC中显示模式对话框

时间:2015-09-08 17:31:46

标签: c++ mfc

我无法在MFC上找到任何好的教程,我正在尝试显示一个对话窗口。

我创建了一个新资源,添加了我的控件,它继承自CDialogEx,但我不知道应该在哪里创建代码并显示对话框窗口,我希望它在加载时加载申请开始了,你能给我提示吗?

1 个答案:

答案 0 :(得分:2)

代码应该在您的应用程序InitInstance()中,如下所示:

BOOL MyApp::InitInstance()
{
    INITCOMMONCONTROLSEX InitCtrls;
    InitCtrls.dwSize = sizeof(InitCtrls);

    InitCtrls.dwICC = ICC_WIN95_CLASSES;
    InitCommonControlsEx(&InitCtrls);

    CWinApp::InitInstance();

    ExampleDlg dlg; // instance of dialog
    m_pMainWnd = &dlg; // make dialog main window
    INT_PTR nResponse = dlg.DoModal(); // get the response from your modal dialog 
    // this case, OK button, Cancel button or error in dialog
    if (nResponse == IDOK)
    {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with OK
    }
    else if (nResponse == IDCANCEL)
    {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with Cancel
    }
    else if (nResponse == -1)
    {
        TRACE(traceAppMsg, 0, "Warning: dialog creation failed, so application is terminating unexpectedly.\n");
        TRACE(traceAppMsg, 0, "Warning: if you are using MFC controls on the dialog, you cannot #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS.\n");
    }

当您启动应用程序并将其作为主窗口时,这将为您提供一个对话框。这可以通过使用MFC应用程序向导并选择对话框来轻松完成。它会自动为您提供应用程序的布局。

如果您不想将其设为主窗口,请使用:

ExampleDlg dlg;
dlg.DoModal();

让对话框代码完成工作。