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

时间:2017-10-30 23:22:52

标签: c++ visual-studio visual-studio-2010 titlebar

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

对话框上的标题栏显示居中文字。我需要这个是合理的。但我无法弄清楚为什么它首先集中在一起。我写了另一个示例程序,标题文本默认是左对齐的。对话框属性中的选项是右下角文本。这适用于我的示例程序,但在现有程序中更改它没有任何效果。

似乎有人必须付出一些努力才能使文本居中,但我在代码中看不到任何内容,如果事实上,中心(或我的样本/测试程序中的正确对齐)显示在对话编辑器。所以它必须在那里的属性。但是在哪里!?!?!

这是必须要轻松的事情之一,我没有看到它!

那么我该怎样离开那个标题文本呢?我甚至乐意在代码中执行此操作,因为我已经在修改标题以在其中添加程序版本号。顺便说一句,当我添加标题或交换新标题时,该文本最终居中。

2 个答案:

答案 0 :(得分:2)

制作文本中心的技巧是覆盖WM_NCPAINT事件as given in this link

如果您不想创建文本中心,请删除覆盖,它应该有效。

答案 1 :(得分:0)

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

以编程方式我将版本号添加到标题中,而Win8中的中心过程显然不是动态的,因此结果偏向右侧。我的解决方案是简单地将版本号中的字符数添加到原始标题中,当我打开版本号时,我将删除这些空格。

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