在 VS2013 中,我创建了一个基于对话的 MFC 应用程序。我修改了项目,以便在应用程序开始时使用 PropertyPage 和 Propertysheet,因此它不是启动 CDialog,而是启动我的 propertypage。
之后,我创建了一个对话框,并且类关联(来自::CdialogEx)。我想在单击按钮后打开此对话框。
在我的按钮点击之后,我这样做:
CMyDialog myDialog;
myDialog.DoModal();
我没有任何错误消息,但是,我没有在屏幕上显示我的对话框。
也许是因为这个对话框没有孩子 no ?
任何人都可以帮助我吗?
非常感谢,
此致,
尼克修斯
编辑 :
这是我的入口点:
#include "stdafx.h"
#include "KenoApp.h"
#include "KenoDlg.h"
#include "GenerationDlg.h"
#include "KenoSheet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CKenoApp
BEGIN_MESSAGE_MAP(CKenoApp, CWinApp)
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()
// construction CKenoApp
CKenoApp::CKenoApp()
{
}
// Seul et unique objet CKenoApp
CKenoApp theApp;
// initialisation de CKenoApp
BOOL CKenoApp::InitInstance()
{
AfxEnableControlContainer();
// Standard initialization
#ifdef _AFXDLL
// Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
CKenoSheet KenoSheet;
KenoSheet.SetTitle(L"Keno Helper v1.1");
CGenerationDlg Generation;
CKenoDlg KenoDlg;
KenoSheet.AddPage(&KenoDlg);
KenoSheet.AddPage(&Generation);
//m_pMainWnd = &KenoSheet;
int nResponse = KenoSheet.DoModal();
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
之后,在我的属性页面上:
CAboutDlg myDialog;
theApp.m_pMainWnd = &myDialog;
myDialog.DoModal();
我现在的问题是, DoModal() 关闭了我的应用程序。