使用PropSheetLook_OneNoteTabs样式动态调整CMFCPropertySheet的大小

使用PropSheetLook_OneNoteTabs样式动态调整CMFCPropertySheet的大小,mfc,mfc-feature-pack,Mfc,Mfc Feature Pack,我正在尝试动态调整CMFCPropertySheet的大小,以便在每个页面的底部添加一个自定义控件 由于所有属性页的高度都不相同,因此我有一种机制可以在必要时增加大小。 为此,我已经覆盖了激活页面的方法,通过使用SetWindowPos,我可以调整工作表的大小,首先是选项卡控件,然后是页面,最后可以移动确定/取消/帮助按钮 它适用于PropSheetLook\u OutlookBar和PropSheetLook\u选项卡样式,但不适用于PropSheetLook\u onenotetab样式。页

我正在尝试动态调整
CMFCPropertySheet
的大小,以便在每个页面的底部添加一个自定义控件

由于所有属性页的高度都不相同,因此我有一种机制可以在必要时增加大小。 为此,我已经覆盖了激活页面的
方法,通过使用
SetWindowPos
,我可以调整工作表的大小,首先是选项卡控件,然后是页面,最后可以移动确定/取消/帮助按钮

它适用于
PropSheetLook\u OutlookBar
PropSheetLook\u选项卡
样式,但不适用于
PropSheetLook\u onenotetab
样式。页面(或选项卡)大小调整不正确(页面的浅灰色无法填充工作表)

OneNote风格

外观风格


有什么想法吗?一个MFC功能包错误?

我发现了问题。需要通过
GetTab()
获得对
OneNote
版本使用的不同选项卡控件的引用,并相应调整其大小。

只需按照中的说明操作即可。 尽管这些说明适用于CPropertySheet,但它们也适用于CMFCPropertySheet

代码的某些部分已弃用,因此您需要进行以下修改

  • 完全跳过XmnPropSheetCallbackDoModal实现
  • OnInitDialog
    中,只需调用
    CPropertySheet::OnInitDialog();
    ,然后调用
    OnSize
    ,而不是执行代码中显示的所有操作

  • 页面的上边缘看起来像什么?