在.rc文件中的Ampersand(&)的含义

Arn*_*rah 2 c++ windows winapi resource-files visual-c++

在Windows上使用WIN32对Windows应用程序进行编码时,要非动态加载资源,必须加载一个*.rc文件,该文件包含用于定义应用程序中常见功能的资源定义语句,如按钮和菜单.在从WinProg阅读WIN32 API的教程时,我遇到了这个令我困惑的代码:

IDR_MYMENU MENU
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "E&xit", ID_FILE_EXIT
    END

    POPUP "&Stuff"
    BEGIN
        MENUITEM "&Go", ID_STUFF_GO
        MENUITEM "G&o somewhere else", 0, GRAYED
    END
END
Run Code Online (Sandbox Code Playgroud)

看看上面的代码,可以理解这个函数是什么.我自己理解代码在.rc文件中做了什么,但让我感到困惑的一件事就是&字符串中间可见的&符号(),例如"G&o somewhere else"(G和O之间)或"E&xit"(E和E之间)X).我对Stack Overflow的具体问题是:&符号在.rc文件中的含义是什么?在编写应用程序时,我必须在哪里放置它们?我已经查看了描述文件功能的MSDN链接,但我无法在文档中得到答案.

and*_*abs 7

这些&仅用于菜单,它们定义"菜单访问键"或"助记符",也称为其他人的加速器和快捷键.是的,术语过载且令人困惑.

更多阅读:为什么你可能没有意识到这些是存在的.

  • 除了菜单之外,`&`还可以作为带有标签的控件中的"助记符"([通用控制参数](https://msdn.microsoft.com/en-us/library/windows/desktop/aa380902. ASPX)).例如,在对话框模板中用"&Save"定义的按钮将显示为"Save"(在按下"ALT"之后)并响应"ALT + S". (5认同)