標準スクロール バーのキーボード インターフェイスを作成する方法
スクロール バー コントロールには組み込みのキーボード インターフェイスが用意されていますが、標準のスクロール バーでは提供されません。 標準のスクロール バー用にキーボード インターフェイスを実装するには、ウィンドウ プロシージャで WM_KEYDOWN メッセージを処理し、wParam パラメーターで指定された仮想キー コードを調べる必要があります。 仮想キー コードが方向キーに対応している場合は、ウィンドウ プロシージャは、wParam パラメーターの下位ワードを適切なスクロール バー要求コードに設定した WM_HSCROLL メッセージまたは WM_VSCROLL メッセージをプロシージャ自身に送信します。
たとえば、ユーザーが上方向キーを押すと、ウィンドウ プロシージャは、wParam が VK_UP に設定された WM_KEYDOWN メッセージを受信します。 それに応答して、ウィンドウ プロシージャは、wParam の下位ワードが SB_LINEUP 要求コードに設定された WM_VSCROLL メッセージをそれ自体に送信します。
知っておくべきこと
テクノロジ
前提条件
- C/C++
- Windows ユーザー インターフェイス プログラミング
手順
標準スクロール バーのキーボード インターフェイスを作成する
次のコード例は、標準のスクロール バー用のキーボード インターフェイスを含める方法を示しています。
case WM_KEYDOWN:
{
WORD wScrollNotify = 0xFFFF;
switch (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;
}
関連トピック