助记符是按钮标签或静态控件文本中的选定字母或数字。只要用户按下与助记符对应的密钥,或将该密钥和ALT密钥组合,Windows将输入焦点移动到与助记符相关的控制。助记符提供了一种快速的方法,使用户通过使用键盘移动到给定的控件。
应用程序通过在控件的标签或文本中选定的字母或数字之前插入&符(&),为控件创建助记符。在大多数情况下,与对话框模板中的控件一起提供的以null结尾的字符串包含&符号。但是,应用程序可以随时通过使用SetDlgItemText函数替换控件的现有标签或文本来创建助记符。每个控制只能提供一个助记符。虽然建议,对话框中的助记符不必是唯一的。
当用户按一个字母或数字键时,Windows首先确定具有输入焦点的当前控件是否处理键。Windows向控件发送WM_GETDLGCODE消息,如果控件返回DLGC_WANTALLKEYS或DLG_WANTMESSAGE值,则Windows将该密钥传递给控件。否则,它会搜索与助记符匹配给定字母或数字的控件。它继续搜索,直到它找到控件或已经检查了所有控件。在搜索过程中,它会跳过具有SS_NOPREFIX样式的任何静态控件。
如果Windows找到一个静态控件并且控件未被禁用,Windows将静态控件移动到第一个控件,该静态控件是可见的,未被禁用的,并且具有WS_TABSTOP样式。如果Windows找到具有匹配助记符的其他控件,则将输入焦点移动到该控件。如果控件是默认按钮,Windows会向对话框过程发送BN_CLICKED通知消息。如果控件是另一种按钮样式,并且对话框中没有其他控件具有相同的助记符,则Windows将BM_CLICK消息发送到控件。