C++ Visual Studio错误地使用了.rc文件中的信息

C++ Visual Studio错误地使用了.rc文件中的信息,c++,visual-studio,winapi,dialog,resources,C++,Visual Studio,Winapi,Dialog,Resources,我使用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

我使用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文件中的控件位置信息?

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

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

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


如果对话框的字体更大,则创建时对话框及其所有元素都会更大。

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