1

CMFCPropertySheet各ページの下部にカスタム コントロールを追加するために、動的にサイズを変更しようとしています。

すべてのプロパティ ページが同じ高さではないため、必要に応じてサイズを大きくするメカニズムがあります。このために、OnActivatePageメソッドをオーバーライドしSetWindowPos、 を使用して、最初にシートのサイズを変更し、次にタブ コントロール、次にページのサイズを変更し、最後に [OK]/[キャンセル]/[ヘルプ] ボタンを移動できます。

スタイルではうまく機能しますがPropSheetLook_OutlookBarPropSheetLook_Tabsスタイルでは機能しませんPropSheetLook_OneNoteTabs。ページ (またはタブ) のサイズが正しく変更されていません (ページの明るい灰色がシートを塗りつぶしません。

OneNote スタイルOneNote http://www.freeimagehosting.net/uploads/th.ec91600664.jpg

Outlook スタイルOutlook http://www.freeimagehosting.net/uploads/th.319b6938ab.jpg

何か案が?MFC 機能パックのバグですか?

4

2 に答える 2

0

問題を見つけました。OneNoteバージョンが使用する別のタブコントロールへの参照を取得し、GetTab()それに応じてサイズを変更する必要があります。

于 2009-08-27T17:19:55.880 に答える
0

こちらの指示に従ってください。手順はCPropertySheet用ですが、CMFCPropertySheetでも機能します。

コードの一部は非推奨になっているため、次の修正を行う必要があります。

  1. XmnPropSheetCallbackDoModalの実装を完全にスキップする
  2. そのコードに示されているすべてを実行する代わりに、呼び出しOnInitDialogてから呼び出すだけです。CPropertySheet::OnInitDialog();OnSize
于 2011-11-01T02:38:09.563 に答える