显示不在模态模式下的对话框

时间:2014-04-07 10:22:19

标签: c++ visual-c++ mfc

我有对话框。要从我的应用程序中调用它,我使用代码:

BOOL CpointMFC2App::InitInstance()
{
    CWinApp::InitInstance();
    Dialog dlg1;
    dlg1.txt= "NotificationText";
    int r= dlg.DoModal();
        return r;
}

现在我不会有模态模式 - 我想让程序无需等待用户输入。如何让我的dlg1以非模态模式显示?

对话形式:

#include "stdafx.h"
#include "pointMFC2.h"
#include "Dialog.h"
#include "afxdialogex.h"


// Dialog dialog

IMPLEMENT_DYNAMIC(Dialog, CDialogEx)

Dialog::Dialog(CWnd* pParent /*=NULL*/)
    : CDialogEx(Dialog::IDD, pParent)
{

}

Dialog::~Dialog()
{
}

void Dialog::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(Dialog, CDialogEx)
    ON_BN_CLICKED(IDOK, &Dialog::OnBnClickedOk)
END_MESSAGE_MAP()


// Dialog message handlers
BOOL Dialog::OnInitDialog() 
{
        CDialogEx::OnInitDialog();
        SetWindowText(txt);
        return TRUE;
}

void Dialog::OnBnClickedOk()
{
    // TODO: Add your control notification handler code here
    CDialogEx::OnOK();
}

1 个答案:

答案 0 :(得分:1)

要创建非模态对话框,您必须调用对话框的Create函数。在对话框类的构造函数中执行此操作。然后,您必须从InitInstance返回TRUE以保持程序运行。

m_pMainWnd = new Dialog();
return TRUE; // Run MFC message pump