Winapi AppendMenu LPCTSTR 可变符号

Winapi AppendMenu LPCTSTR variable ampersand

我目前正在开始学习 WINAPI,并且一直在学习 http://www.winprog.org

上的教程

在这个特定的 tutorial 上,有一个部分使用 AppendMenu 创建子菜单。

最后一个参数是 LPCTSTR,据我所知,它实际上不会被任何东西解释,只是一个字符串,所以不应该是任何东西的地址。

AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&File");
                                                         ^

所以我想知道为什么作者在菜单按钮的文本之前包含 &
删除 & 符号似乎对程序的功能没有影响,但由于它没有出现在显示的字符串中,我假设它做了一些事情。

所以问题是这个 & 是否真的提供了任何功能,如果是,应该什么时候使用它?

& 符号是 menu access key 的占位符。后面的字母是带下划线的,可以设置Windows总是显示下划线,或者当按下Alt键时。带下划线的字母是访问键,因此当特定菜单打开时,您可以按该键激活菜单项。如果有多个菜单项具有该访问键,按下该键将 select 它们一一显示,但您必须按 Enter 键才能激活 selected 菜单项。