我想添加一個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