0

3 つの CPropertyPages を表示するために使用している CPropertySheet があります。デフォルトの「適用」ボタンと「ヘルプ」ボタンを削除しました。私の問題は、それらが削除されたので、かつて配置されていた場所に大きなギャップがあることです。このギャップをなくす方法はありますか?ありがとう!

これが私が話し ているギャップの写真です:ギャップ

ボタンが取り外される前は、隙間の右側にありました。「オプションの変更」ページは Visual Studio のデザイナーで作成され、ページは [印刷] ボタンのすぐ下で終了することに注意してください。メインの管理オプション CPropertySheet は、完全にコードから作成されました。CPropertySheet とページを初期化するコード (および [ヘルプ] ボタンと [適用] ボタンを削除) は次のとおりです。

BEGIN_MESSAGE_MAP(CSLIMOptCplusplusApp, CWinApp)
//ON_COMMAND(ID_HELP, &CWinApp::OnHelp) Commented out to remove the "Help" button
END_MESSAGE_MAP()

BOOL OptCplusplusApp::InitInstance()
{
CWinApp::InitInstance();
SQLHENV m_1;
EnvGetHandle(m_1);

Login lgn;   //Creates a Login dialog for the user to enter credentials.
lgn.DoModal();

CImageSheet*      imagedlg = new CImageSheet( "SLIM Admin Options" );
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( pageImageDisplay );
imagedlg->AddPage( pageImageDimensions );

imagedlg->m_psh.dwFlags |= PSH_NOAPPLYNOW;  //Removes the default Apply button
imagedlg->Create();
imagedlg->ShowWindow( SW_SHOW );
m_pMainWnd = imagedlg;

さらに詳細が必要な場合は編集します。ありがとう。

4

1 に答える 1

1

この種の外観をプロパティ シートで実現するには....

ここに画像の説明を入力

シート内で OnitDialog を処理し、サイズを変更する必要があります。たとえば、CPropertySheet::GetPageCWnd::MoveWindowを組み合わせて使用​​すると、目的が達成されます。

BOOL MyPropSheet::OnInitDialog()
    {
    BOOL bResult = CPropertySheet::OnInitDialog();

    // TODO:  Add your specialized code here
    CPropertyPage* pg1 = GetPage(0);
    CRect rect(0, 0, 0, 0);

    pg1->GetWindowRect(&rect);

    CRect thisRect(0, 0, 0, 0);
    GetWindowRect(&thisRect);

    thisRect.bottom = rect.bottom + 16;
    MoveWindow(&thisRect);
return bResult;
}
于 2015-03-13T20:13:44.703 に答える