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

问题描述 投票:1回答:2

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

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

它适用于PropSheetLook_OutlookBarPropSheetLook_Tabs风格,但没有与PropSheetLook_OneNoteTabs风格。页面(或选项卡)未正确调整大小(页面的浅灰色不会填充工作表。

OneNote风格OneNote http://www.freeimagehosting.net/uploads/th.ec91600664.jpg

展望风格Outlook http://www.freeimagehosting.net/uploads/th.319b6938ab.jpg

任何的想法?一个MFC功能包错误?

mfc mfc-feature-pack
2个回答
0
投票

我发现了这个问题。需要通过OneNote获取GetTab()版本使用的不同选项卡控件的引用并相应地调整它。


0
投票

只需按照here中的说明操作即可。虽然说明书适用于CPropertySheet,但它们也适用于CMFCPropertySheet。

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

  1. 完全跳过XmnPropSheetCallback和DoModal实现
  2. OnInitDialog中,只需调用CPropertySheet::OnInitDialog();,然后调用OnSize而不是执行该代码中显示的所有内容。
© www.soinside.com 2019 - 2024. All rights reserved.