- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在 VS2013 中,我创建了一个基于对话的 MFC 应用程序。我修改了项目以便在应用程序开始时使用 PropertyPage 和 Propertysheet,因此,它不会启动 CDialog,而是启动我的属性页。
之后,我创建了一个对话框,类关联(from::CdialogEx)。我想在单击按钮后打开此对话框。
在点击按钮后,我会:
CMyDialog myDialog;
myDialog.DoModal();
我没有任何错误消息,但是,我没有在屏幕上显示我的对话框。
也许是因为这个对话框没有 child 没有?
有人可以帮帮我吗?
非常感谢,
最好的问候,
尼克修斯
编辑:
这是我的入口点:
#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() 关闭了我的应用程序。
最佳答案
快速修复:在应用程序的 InitInstance()
中:
CMyPropSheet pps(_T("My Property Sheet"), NULL, 0);
//m_pMainWnd = &pps; // *** remark away this line if you have it
int nResponse = pps.DoModal();
// do response ...
CTestDlg dlg;
m_pMainWnd = &dlg; // this line is a must have
nResponse = dlg.DoModal();
// do response ...
以上代码假设 PropertySheet 和 Dialog 将在应用程序的 InitInstance() 中依次启动。从你那里得到更多信息后,它似乎不是你想要的方式,所以上面的代码不适用于你的问题。在使用我的建议之前,请将您的代码还原为原始代码。
关于c++ - MFC 应用程序 DialogBased 使用 propertyPage,CDialog 的 DoModal() 不打开任何对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19937959/
我正在创建一个属性页。在页面上,我有一个名为“添加”的按钮。我希望用户能够按 Enter 键,然后单击“添加”按钮,而不是单击“确定”按钮。这可以做到吗? 我考虑过的一个选择是在performOk()
我正在为 Eclipse 插件设计一个属性页。我需要对页面上默认创建的“恢复默认值”和“应用”按钮进行编程。有人可以帮助我如何去做吗? 谢谢! 最佳答案 您可以重写属性页中的performDefaul
我有课 class CCfgUserPage : public CPropertyPage 它还拥有各种控件,从复选框到文本区域。我想为每个控件添加工具提示,但似乎有问题。 在 CCfgUserPag
在 VS2013 中,我创建了一个基于对话的 MFC 应用程序。我修改了项目以便在应用程序开始时使用 PropertyPage 和 Propertysheet,因此,它不会启动 CDialog,而是启
我是一名优秀的程序员,十分优秀!