3 つの CPropertyPages を持つ CPropertySheet を MFC アプリケーションに追加しようとしています。私の問題は、プロパティ シートが 1 秒未満しか表示されずに閉じてしまうことです。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: 型 "CSLIMOptCplusplusApp *" の引数は、型 "CWnd *" のパラメーターと互換性がありません
私も試しimagedlg->Create();
てみましたが、これも一瞬しか点滅しません。CPropertySheet が閉じられるまで開いたままにしたいと思います。助けてくれてありがとう!
編集:
これは、プロパティシートをどのように見せたいかのイメージです。最初のタブでは ListControl を使用してデータベース オプションを変更しましたが、他の 2 つのタブでは別のことを行います。私の意図は、ダイアログ/プロパティシートを現在と同じように見えるようにすることですが、閉じるのではなく開いたままにすることです。