2008-12-18 143 views
1

我试图动态调整CMFCPropertySheet在每个页面的底部添加一个自定义控件。由于所有属性页的高度不一样,因此我有一个机制来在必要时增加大小。 为此,我重写了OnActivatePage方法,并通过使用SetWindowPos,我可以调整页面大小,首先,然后选项卡控件,然后页面,最后我可以移动确定/取消/帮助按钮。它适用于PropSheetLook_OutlookBar和PropSheetLook_Tabs样式,但不适用于PropSheetLook_OneNoteTabs样式。页面(或选项卡)不正确调整大小(页的浅灰色色不填充表。动态调整CMFCPropertySheet与PropSheetLook_OneNoteTabs样式

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

Outlook等风格的Outlook http://www.freeimagehosting.net/uploads/th.319b6938ab.jpg

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

+0

页面的上边缘是什么样的? – 2008-12-19 02:09:43

回答

0

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

0

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

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

  1. 跳过XmnPropSheetCallback的DoModal实现完全
  2. OnInitDialog只需打个电话给CPropertySheet::OnInitDialog();,然后调用OnSize而不是做在该代码呈现的一切。