mfc - 在 Windows 7 中将显示更改为 125% 时,MFC 中的控件被切断

标签 mfc windows-7 layout dpi

我有一个 MFC 应用程序。在 Windows 7 上运行它时,我意识到将显示百分比更改为中等 - 125% 时,我有一个被截断的 TextControl(不会出现句末。)

我怎样才能解决这个问题?

我可以放大对话框上控件的大小,但我宁愿通过代码来做到这一点。
我的应用程序已本地化,我不想更改每种语言的所有对话框。

最佳答案

一般来说,问题在于绝对坐标被用于某些尺寸而不是相对坐标。该框架最初会在大 DPI 中正确布局,然后由您决定通过调整大小来保持内容。

您可以使用这样的布局框架:Ultimate Toolbox Layout Manager ,或者您可以自己滚动。

这是我使用的一个常见模式:

  • 定义一个结构来捕获控件的 ID、大小、位置和布局行为(锚定顶部|左|右|下)
  • 在文档构造函数中,用你想要的布局行为初始化一个结构数组
  • OnInitDialog ,捕获初始控制位置,例如对于设置为左上角的控件,您需要从父级的顶部和左侧获取初始距离。
  • OnSize ,根据其布局行为重新定位和调整每个控件的大小。
  • 关于mfc - 在 Windows 7 中将显示更改为 125% 时,MFC 中的控件被切断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1638873/

    相关文章:

    c++ - 这个基本 MFC 对话框应用程序的入口点是什么?

    windows-7 - 无法安装到 c :\Program files on Windows 7

    html - 制作视口(viewport)的 div 中心 - 水平和垂直

    c# - 这两种结构有什么区别

    c++ - 落下 : how to determine which mouse button is being used?

    c++ - 使用 WM_USER、WM_APP 或 RegisterWindowMessage

    c++ - 组合框 - OnCtlColor : How to color the whole list rect

    windows - 在 Windows Vista/7 中支持回声消除的 API

    windows - 使用 MSDeploy 到运行默认 IIS 的 Windows 7 计算机

    HTML5 : Sticky footer, 标题和文章