我想添加一个CPropertySheet与三个CPropertyPages到我的MFC应用程序。我的问题是,属性表只显示不到一秒钟,然后关闭。当我在创建CPropertySheet后打开不同的模式对话框时,CPropertySheet保持打开状态,我可以毫无问题地使用它。这里是我的代码:CPropertySheet只显示第二个
BOOL CSLIMOptCplusplusApp::InitInstance()
{
CWinApp::InitInstance();
SQLHENV m_1;
EnvGetHandle(m_1);
Login lgn;
lgn.DoModal();
CImageSheet* imagedlg = new CImageSheet("Image Capture Dialog");
CImageDisplay* pageImageDisplay = new CImageDisplay;
CImageDimensions* pageImageDimensions = new CImageDimensions;
ListOption* pageListOption = new ListOption;
ASSERT(imagedlg);
ASSERT(pageImageDisplay);
ASSERT(pageImageDimensions);
ASSERT(pageListOption);
imagedlg->AddPage(pageListOption);
imagedlg->AddPage(pageImageDimensions);
imagedlg->AddPage(pageImageDisplay);
imagedlg->Create(NULL,
-1,
WS_EX_CONTROLPARENT | WS_EX_TOOLWINDOW);
imagedlg->ShowWindow(SW_SHOW);
我想我的问题可能是在imagedlg->Create(
当我使用NULL
作为第一个参数。我遵循的教程使用this
代替NULL
。然而,给出了错误:
IntelliSense: argument of type "CSLIMOptCplusplusApp *" is incompatible with parameter of type "CWnd *"
我也试过imagedlg->Create();
,它也只是一瞬间闪光。 我希望我的CPropertySheet保持打开状态,直到它关闭。谢谢你的帮助!
编辑: 这是一个图像,我希望我的属性表看起来像。我的第一个选项卡使用ListControl来更改数据库选项,另外两个选项卡将执行其他操作。我的目的是保持对话框/属性表看起来与现在一样,但保持开放而不是关闭。
我很困惑你正在使用的窗口样式。你的意图是什么? – rrirower 2015-03-13 15:15:34
我更新了图片和说明。我的意图是有三个选项卡在我的应用程序中执行三种不同的操作。我使用CPropertySheet而不是TabControl,因为它允许我将设计器制作的对话框添加为页面。 – 2015-03-13 15:24:53
那么,为什么扩展窗口的样式?你显示的代码的上下文是什么?它如何适合整个应用程序? – rrirower 2015-03-13 15:28:28