1

我正在尝试动态调整 aCMFCPropertySheet以在每个页面的底部添加自定义控件。

由于所有属性页的高度不同,我有一种机制可以在必要时增加大小。为此,我重写了该OnActivatePage方法,并使用SetWindowPos,我可以调整工作表的大小,首先是选项卡控件,然后是页面,最后我可以移动 OK/Cancel/Help 按钮。

它适用于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 回答