Windows为对话框提供了一个特殊的键盘界面,用于对几个键执行特殊处理。界面生成与对话框中某些按钮相对应的消息,或将输入焦点从一个控件更改为另一个。以下是此界面中使用的键及其各自的操作。
键 | 行动 |
ALT+【助记符】 | 在包含给定助记符的静态控件之后,将输入焦点移动到第一个控件(具有WS_TABSTOP样式)。 |
DOWN | 将输入焦点移动到组中的下一个控件。 |
ENTER | 发送WM_COMMAND消息到对话框过程。【wParam中】参数设置为IDOK或默认按钮的控制标识符。 |
ESC | 向对话框过程发送WM_COMMAND消息。【wParam中】参数设置为IDCANCEL。 |
LEFT | 将输入焦点移动到组中的上一个控件。 |
【助记符】 | 在包含给定助记符的静态控件之后,将输入焦点移动到第一个控件(具有WS_TABSTOP样式)。 |
RIGHT | 将输入焦点移动到组中的下一个控件。 |
SHIFT+TAB | 将输入焦点移动到具有WS_TABSTOP样式的上一个控件。 |
TAB | 将输入焦点移动到具有WS_TABSTOP样式的下一个控件。 |
UP | 将输入焦点移动到组中的上一个控件。 |
Win32 API自动为所有模态对话框提供键盘界面。它不提供无模式对话框的界面,除非应用程序调用{??989796052}功能来过滤其主消息循环中的消息。这意味着应用程序必须在从消息队列中检索到消息后立即将消息传递给IsDialogMessage.该函数处理消息(如果是对话框)并返回非零值,以指示消息已经被处理,并且不能传递给TranslateMessage或DispatchMessage函数。
由于对话框键盘界面使用方向键在对话框中的控件之间移动,所以应用程序无法使用这些键滚动任何模态对话框的内容或调用IsDialogMessage的任何无模式对话框。当对话框有滚动条时,应用程序必须为滚动条提供备用键盘界面。请注意,当系统包含鼠标时,用于滚动的鼠标接口可用。