下划线标签 C++ 的第一个字母(下划线不显示)

Posted

技术标签:

【中文标题】下划线标签 C++ 的第一个字母(下划线不显示)【英文标题】:Underlining first letter of Label C++ (Underline doesn't show) 【发布时间】:2015-04-06 14:20:18 【问题描述】:

问题: 我希望在某些静态文本控件(例如登录名和密码)的首字母下划线。当按下ALT 键时,字母变为下划线。

我尝试过的: 在 C# 中,我可以通过使用 & 符号来实现这一点。例如“&登录”或“&密码”。我试图在 C++ 中找到类似的方法。下图是一个 C# 示例:

我在 Visual Studio 2010 中使用 MFC/C++。

编辑: 添加了有关 ALT 键的信息。这是我在 Visual Studio 2010 的属性框中尝试的示例。我在“标题”文本的前面添加了一个 & 符号。

当我在调试器中运行我的程序时,第一个字母没有下划线(直到按下ALT):

【问题讨论】:

你用同样的方法(和号在你想要下划线的字母之前)。 我试过了,还是不行。 那么你可能需要“展示你的作品”,可以这么说——它绝对可以工作,所以如果它不适合你,你显然正在这样做错误。 尝试按Alt 键,看看它们是否出现:msdn.microsoft.com/en-us/library/windows/desktop/… 这是完全正常的,您的机器开启了“隐藏键盘导航的下划线字母,直到我按下 Alt 键”选项。似乎您更喜欢它以这种方式工作:) 避免将您的偏好强加给用户。 【参考方案1】:

菜单和静态控件之间存在根本区别。

要在菜单中执行此操作,您可以像在 C# 中一样执行此操作。这是在 C++ 项目中编辑菜单的屏幕截图:

...结果如下:

对于静态控件,您必须清除 SS_NOPREFIX 样式才能使控件获得相同的行为。但是,据我观察,在某些情况下下划线不显示(但我从未确定下划线不显示的确切情况——我认为当它发生时,我通过更改字体修复了它,但我不记得了)。

【讨论】:

SS_NOPREFIX(无前缀)在 Visual Studio 的属性框中默认为 false。这不是我的问题的答案,但可能适用于其他人。谢谢。【参考方案2】:

在 SO 社区的帮助下,似乎在所需的带下划线的字母之前使用 & 符号是正确的方法。我的个人机器上有一个设置可以隐藏带下划线的字母,直到按下ALT 键。

根据 MSDN:

用户通常必须按 ALT 才能看到访问键名称。为确保您在整个开发过程中解决它们,请将您的计算机设置为持续显示访问密钥。

在 Windows 8 中: 打开控制面板 -> 轻松访问中心 -> 使键盘更易于使用。

在屏幕底部,选中“下划线键盘快捷键和访问键”。

【讨论】:

以上是关于下划线标签 C++ 的第一个字母(下划线不显示)的主要内容,如果未能解决你的问题,请参考以下文章

每次下一个字符与字母/数字或下划线不同时,使用正则表达式查找一个单词

首字母字号变大而不影响其下划线粗细的方法

Django框架 之 模板语言

怎样让页面中所有的a href标签都不显示下划线?

java(android)命名规范

关于标签类的注意事项