具有键盘焦点的窗口的窗口过程在用户键入键盘时接收击键消息。按键消息是WM_KEYDOWN,WM_KEYUP,WM_SYSKEYDOWN和WM_SYSKEYUP.典型的窗口过程将忽略除WM_KEYDOWN之外的所有按键消息。当用户按下键时,Windows会发布WM_KEYDOWN消息。
当窗口过程收到WM_KEYDOWN消息时,它应该检查消息附带的虚拟密钥代码,以确定如何处理按键。虚拟密钥代码位于消息的【wParam中】参数中。通常,应用程序仅处理由非字符键生成的按键,包括功能键,光标移动键和专用键(如INS,DEL,HOME和END)。
以下示例显示了典型应用程序用于接收和处理击键消息的窗口过程框架。
case WM_KEYDOWN:
开关(wParam){
case VK_LEFT:
.
./ *处理左箭头键。*/
.
break;
case VK_RIGHT:
.
./ *处理右箭头键。*/
.
break;
case VK_UP:
.
./ *处理向上箭头键。*/
.
break;
case VK_DOWN:
.
./ *处理向下箭头键。*/
.
break;
case VK_HOME:
.
./ *处理HOME键。*/
.
break;
case VK_END:
.
./ *处理END键。*/
.
break;
case VK_INSERT:
.
./ *处理INS键。*/
.
break;
case VK_DELETE:
.
./ *处理DEL键。*/
.
break;
case VK_F2:
.
./ *处理F2键。*/
.
break;
.
./ *处理其他非字符键击。*/
.
默认:
break;
}