【问题标题】:Dynamically resizing CMFCPropertySheet with PropSheetLook_OneNoteTabs style使用 PropSheetLook_OneNoteTabs 样式动态调整 CMFCPropertySheet 的大小
【发布时间】:2008-12-18 16:31:16
【问题描述】:

我正在尝试动态调整 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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 2012-10-24
      • 2014-03-19
      • 2015-11-02
      相关资源
      最近更新 更多