【问题标题】:Visual Studio incorrectly uses information from .rc-fileVisual Studio 错误地使用来自 .rc 文件的信息
【发布时间】:2021-07-05 13:40:13
【问题描述】:

我使用 Visual Studio 2012 资源编辑器向主窗口添加了 3 个静态文本:

每个静态元素之间的距离相同。它等于 8

这是来自 .rc 文件的代码:

LTEXT           "Example",IDC_STATIC_1,25,30,35,8
LTEXT           "Example",IDC_STATIC_2,25,38,35,8
LTEXT           "Example",IDC_STATIC_3,25,47,35,8

但是如果你放大图片,你可以在这里看到静态之间的距离是不同的:

但如果使用CreateWindowEx() 函数创建这些静态,那么所有距离都是相同的。

问题:为什么 Visual Studio 会错误地使用 .rc 文件中的控件位置信息?

【问题讨论】:

  • 这既不正确也不 Visual Studio。这是 DLU 如何转换为设备像素坐标的产物。
  • 38-30=8, 47-39=9
  • @SimonMourier 也许是 47-38=9?
  • @nevilad - :-) 是的,我就是这个意思

标签: c++ visual-studio winapi dialog resources


【解决方案1】:

这是意料之中的。您需要查看MapDialogRect()GetDialogBaseUnits() 的文档。

对话框单位不是像素。他们是他们自己的东西。

创建对话框时,它会使用对话框的字体来缩放对话框。如果未指定,或者指定使用系统字体,则对话框将缩放到该大小。

如果对话框的字体更大,那么对话框在创建时会更大,它的所有元素也会更大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多