MFC-CPropertyPageEx和缩放(4K监视器)

时间:2018-11-08 16:23:41

标签: mfc scaling

我正在升级旧的MFC应用程序以支持4K显示器。根据我能找到的信息,CPropertySheetEx“实现Wizard97样式功能”。这是一个具有上一个和下一个按钮以及横幅的对话框。

现在MFC在缩放此对话框方面做得很差,我不确定我对该对话框拥有什么控制权。

4K通常是200%缩放。标语的高度保持不变,为59像素(因此在4K显示器上太小了)。对话框的其余部分似乎已缩放到大约150%(宽度,高度)。

我在横幅上尝试过SetWindowPos。这不会调整大小,并导致其他对话框问题。

代码中有此注释,这使我认为横幅是使用属性表动态构建的。

// If the page has a header, we need to paint the area above the border.
// By inspection (Spy++), the border is a static control with ID 0x3027
     CWnd* pTopBorder = GetDlgItem(0x3027);

任何建议或指南将不胜感激。

  • 该应用程序支持DPI。许多MFC组件可以正确缩放(有些需要一些工作)
  • 问题-如何获得CPropertyPageEX对话框来支持缩放?
  • 这是一张图片![缩放问题] https://imgur.com/a/Ww8SLnU

编辑- 横幅中的图标和文本可以调整大小和位置,只有横幅的高度似乎停留在50像素。

  1. CPropertyPageEx在MFC 11中定义为CPropertyPage。它直接来自CWnd
  2. 在查看CPropertyPage的源代码(atlmfc \ src \ mfc \ dlgprop.cpp)时,没有构造函数在其中创建按钮或横幅(因此我可能在错误的位置)。
  3. PropertySheet似乎包含
    • 图形(用户提供),
    • 水平条(静态控件),
    • 当前显示的属性页中的对话框资源
    • 另一横杠
    • 一系列按钮(上一页,下一页等)
  4. 看看我的高清屏幕截图https://imgur.com/a/yR97H96
    • 对话框和控件已重新缩放
    • 水平栏和属性页的垂直位置与未缩放版本相同,导致您可以看到难看的重叠。

0 个答案:

没有答案