为标准滚动条创建键盘界面

【勇芳软件工作室】汉化HomePreviousNext

虽然滚动条控件提供了内置的键盘界面,但标准滚动条不会。要实现标准滚动条的键盘界面,窗口过程必须处理WM_KEYDOWN消息并检查【wParam中】参数指定的虚拟键代码。如果虚拟键代码对应于箭头键,则窗口过程将自己发送WM_HSCROLLWM_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;

.

.

.