下划线标签 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++ 的第一个字母(下划线不显示)的主要内容,如果未能解决你的问题,请参考以下文章