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

时间:2008-12-18 16:31:17

标签: mfc mfc-feature-pack

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

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

它适用于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功能包错误?

2 个答案:

答案 0 :(得分:0)

我发现了问题。我们需要通过OneNote获取GetTab()版本使用的不同标签控件的引用,并相应地调整其大小。

答案 1 :(得分:0)

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

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

  1. 完全跳过 XmnPropSheetCallback DoModal 实施
  2. OnInitDialog中,只需拨打CPropertySheet::OnInitDialog();,然后拨打OnSize,而不是执行该代码中显示的所有内容。