如何左对齐标题文本 VS C++
how to left justify title text VS C++
我正在尝试修改 Visual Studio 下用 C++ 编写的现有基于对话框的程序。
对话框的标题栏显示居中文本。我需要证明这一点。但我无法弄清楚为什么它首先居中。我写了另一个示例程序,标题文本默认左对齐。对话框属性中的一个选项是右下灯文本。这在我的示例程序中有效,但在现有程序中更改它没有效果。
似乎一定有人付出了一些努力来使文本居中,但我在代码中没有看到任何东西,如果确实如此,居中(或者在我的 sample/test 程序中右对齐)显示在对话框编辑器中。所以它必须在那里的属性中。但是在哪里!?!?!
这是必须简单的事情之一,但我没有看到!
那么我该如何左对齐标题文本呢?我什至很乐意用代码来做,因为我已经在修改标题以在其中添加程序版本号。顺便说一句,当我添加标题或换入新标题时,该文本最终居中。
使文本居中的技巧是覆盖 WM_NCPAINT 事件 as given in this link
如果您不想使文本居中,请删除覆盖,它应该可以工作。
所以这不是真正的答案,但我的 "problem" 是我在 Win10 和 Win8 上比较程序 运行。事实证明,Win10 的默认标题必须是左对齐,而 Win8 的默认标题是居中。
我以编程方式将版本号附加到标题,而 Win8 中的居中过程显然不是动态的,因此结果向右倾斜。我的解决方案是简单地将版本号中的字符数添加到原始标题中,当我添加版本号时,我将 trim 去掉这些空格。
WM_NCPAINT 可能是 "right" 的答案,但可能时间太长了。
我正在尝试修改 Visual Studio 下用 C++ 编写的现有基于对话框的程序。
对话框的标题栏显示居中文本。我需要证明这一点。但我无法弄清楚为什么它首先居中。我写了另一个示例程序,标题文本默认左对齐。对话框属性中的一个选项是右下灯文本。这在我的示例程序中有效,但在现有程序中更改它没有效果。
似乎一定有人付出了一些努力来使文本居中,但我在代码中没有看到任何东西,如果确实如此,居中(或者在我的 sample/test 程序中右对齐)显示在对话框编辑器中。所以它必须在那里的属性中。但是在哪里!?!?!
这是必须简单的事情之一,但我没有看到!
那么我该如何左对齐标题文本呢?我什至很乐意用代码来做,因为我已经在修改标题以在其中添加程序版本号。顺便说一句,当我添加标题或换入新标题时,该文本最终居中。
使文本居中的技巧是覆盖 WM_NCPAINT 事件 as given in this link
如果您不想使文本居中,请删除覆盖,它应该可以工作。
所以这不是真正的答案,但我的 "problem" 是我在 Win10 和 Win8 上比较程序 运行。事实证明,Win10 的默认标题必须是左对齐,而 Win8 的默认标题是居中。
我以编程方式将版本号附加到标题,而 Win8 中的居中过程显然不是动态的,因此结果向右倾斜。我的解决方案是简单地将版本号中的字符数添加到原始标题中,当我添加版本号时,我将 trim 去掉这些空格。
WM_NCPAINT 可能是 "right" 的答案,但可能时间太长了。