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

发布于 2024-07-09 19:21:22 字数 772 浏览 10 评论 0原文

我正在尝试动态调整 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 功能包错误?

I'm trying to resize dynamically a CMFCPropertySheet to add a custom control at the bottom of each page.

As all Property Pages are not of the same height, I have a mechanism to increase the size if necessary.
For this, I have overridden the OnActivatePage method and by using SetWindowPos, I can resize the sheet, first, then the tab control, then the page and finally I can move the OK/Cancel/Help buttons.

It works fine with PropSheetLook_OutlookBar and PropSheetLook_Tabs styles but not with PropSheetLook_OneNoteTabs style. The page (or the tab) is not correctly resized (the lighter grey color of the page does not fill the sheet.

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

Outlook style Outlook http://www.freeimagehosting.net/uploads/th.319b6938ab.jpg

Any idea? A MFC Feature Pack bug?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我家小可爱 2024-07-16 19:21:22

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

I found the problem. One needs to get a reference to the different tab control the OneNote version uses via GetTab() and resize it accordingly.

情域 2024-07-16 19:21:22

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

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

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

Just follow the instructions as seen in here.
Although the instructions are for CPropertySheet they work for the CMFCPropertySheet as well.

Some parts of the code is deprecated so you will need to make the following amendments.

  1. Skip the XmnPropSheetCallback and DoModal implementations completely
  2. In OnInitDialog just make a call to CPropertySheet::OnInitDialog(); and then call OnSize instead of doing everything presented in that code.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文