使用 PropSheetLook_OneNoteTabs 样式动态调整 CMFCPropertySheet 的大小
Posted
技术标签:
【中文标题】使用 PropSheetLook_OneNoteTabs 样式动态调整 CMFCPropertySheet 的大小【英文标题】:Dynamically resizing CMFCPropertySheet with PropSheetLook_OneNoteTabs style 【发布时间】:2008-12-18 16:31:16 【问题描述】:我正在尝试动态调整 CMFCPropertySheet
的大小以在每个页面的底部添加自定义控件。
由于所有属性页的高度不同,我有一种机制可以在必要时增加大小。
为此,我重写了OnActivatePage
方法并使用SetWindowPos
,我可以调整工作表的大小,首先是选项卡控件,然后是页面,最后我可以移动确定/取消/帮助按钮。
它适用于PropSheetLook_OutlookBar
和PropSheetLook_Tabs
样式,但不适用于PropSheetLook_OneNoteTabs
样式。页面(或选项卡)未正确调整大小(页面的浅灰色未填满工作表。
OneNote 风格OneNote http://www.freeimagehosting.net/uploads/th.ec91600664.jpg
外观风格Outlook http://www.freeimagehosting.net/uploads/th.319b6938ab.jpg
有什么想法吗? MFC 功能包错误?
【问题讨论】:
页面的顶部边缘是什么样的? 【参考方案1】:我发现了问题。需要通过GetTab()
获得对OneNote
版本使用的不同选项卡控件的引用并相应地调整其大小。
【讨论】:
【参考方案2】:只需按照here 中的说明进行操作即可。 尽管这些说明适用于 CPropertySheet,但它们也适用于 CMFCPropertySheet。
部分代码已弃用,因此您需要进行以下修改。
-
完全跳过 XmnPropSheetCallback 和 DoModal 实现
在
OnInitDialog
中,只需调用CPropertySheet::OnInitDialog();
,然后调用OnSize
,而不是执行该代码中显示的所有操作。
【讨论】:
以上是关于使用 PropSheetLook_OneNoteTabs 样式动态调整 CMFCPropertySheet 的大小的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)