虽然滚动条控件提供了内置的键盘界面,但标准滚动条不会。要实现标准滚动条的键盘界面,窗口过程必须处理WM_KEYDOWN消息并检查【wParam中】参数指定的虚拟键代码。如果虚拟键代码对应于箭头键,则窗口过程将自己发送WM_HSCROLL或WM_VSCROLL消息,其中【wParam中】参数的低位字设置为适当的滚动条通知消息。例如,当用户按向上箭头键时,窗口过程接收到等于VK_UP的【wParam中】的WM_KEYDOWN消息。作为响应,窗口过程发送自己的一个WM_VSCROLL消息,低位字为【wParam中】设置为SB_LINEUP通知消息。
以下示例显示了如何为标准滚动条包含键盘界面。
WORD wScrollNotify = 0xFFFF;
.
.
.
case WM_KEYDOWN:
开关(wParam){
case VK_UP:
wScrollNotify = SB_LINEUP;
break;
case VK_PRIOR:
wScrollNotify = SB_PAGEUP;
break;
case VK_NEXT:
wScrollNotify = SB_PAGEDOWN;
break;
case VK_DOWN:
wScrollNotify = SB_LINEDOWN;
break;
case VK_HOME:
wScrollNotify = SB_TOP;
break;
case VK_END:
wScrollNotify = SB_BOTTOM;
break;
}
if (wScrollNotify != -1)
SendMessage(hwnd,WM_VSCROLL,
MAKELONG(wScrollNotify, 0), 0L);
break;
.
.
.