【问题标题】:Meaning of Ampersand(&), in .rc files.rc 文件中与符号(&)的含义
【发布时间】:2016-07-12 20:34:46
【问题描述】:

在 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

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

【问题讨论】:

  • 这是快捷键的键。
  • 你能解释一下这到底是什么意思吗,比如什么是快捷键的键,为什么& 专门在那里?
  • 您知道在运行程序时看到菜单项中带下划线的字母之一吗?那是快捷键。 & 之所以存在,是因为它是告诉 Windows(例如)“当您在菜单中显示 Exit 并将其用作快捷方式时,为我在 'x' 下划线”的方式。
  • 微软使用的术语是either "menu access key" or "mnemonic"
  • 啊,好的,谢谢大家,你们中的哪一个可以补充一下作为答案吗,我会标记为正确的,以供其他用户将来参考。

标签: c++ windows winapi visual-c++ resource-files


【解决方案1】:

那些&s 仅用于菜单,它们定义了"menu access keys", or "mnemonics",也被其他人称为加速器和快捷方式。是的,术语过多且令人困惑。

更多阅读:why you probably didn't realize these were there.

【讨论】:

  • 除了菜单之外,& 还可以在具有标签 (Common Control Parameters) 的控件中用作 mnemonic character。例如,在对话框模板中使用&Save 定义的按钮将显示为S̲ave(按下ALT 后)并响应ALT+S
猜你喜欢
  • 1970-01-01
  • 2013-07-18
  • 2016-10-25
  • 1970-01-01
  • 2011-05-02
  • 2012-06-12
  • 2017-01-02
  • 1970-01-01
  • 2016-07-20
相关资源
最近更新 更多