如何左对齐标题文本VS C++



我正试图修改Visual Studio下用C++编写的现有基于对话框的程序。

对话框上的标题栏显示居中的文本。我需要证明这一点。但我不明白为什么它一开始就以中心为中心。我已经编写了另一个示例程序,默认情况下标题文本是左对齐的。对话框属性中的一个选项是"右对齐文本"。这在我的示例程序中有效,但在现有程序中更改它没有效果。

似乎一定有人花了一些精力来居中文本,但我在代码中没有看到任何东西,如果事实上,居中(或在我的示例/测试程序中正确对齐)会显示在对话框编辑器中。所以它一定在那里的属性中。但是在哪里!?!?!

这是一件必须很容易的事情,我没有看到!

那么我该如何左对齐标题文本呢?我甚至很乐意用代码来做,因为我已经在修改标题,在其中添加程序版本号了。顺便说一句,当我添加到标题中,或者交换一个新标题时,文本最终会居中。

使文本中心的技巧是覆盖此链接中给出的WM_NCPAINT事件

如果您不想使文本居中,请删除覆盖,它应该可以工作。

所以这不是一个真正的答案,但我的"问题"是我在比较Win10和Win8上运行的程序。事实证明,Win10的默认设置必须是左对齐标题,而Win8的默认设置是居中。

从程序上讲,我将版本号附加到标题上,Win8中的居中过程显然不是动态的,所以结果向右倾斜。我的解决方案是简单地将版本号中的字符数添加到原始标题中,当我添加版本号时,我会去掉这些空格。

WM_NCPAINT可能是"正确"的答案,但就时间而言可能过于昂贵。

最新更新