スライダー コントロールの通知メッセージ
スライダーコントロールは、スライダーコントロールの向きに応じて親 WM_HSCROLL または WM_VSCROLL メッセージを送信することによって、ユーザー操作の親ウィンドウに通知します。 これらのメッセージを処理するには、WM_HSCROLL と WM_VSCROLL のメッセージのハンドラーを親ウィンドウに追加します。 OnHScroll および OnVScroll のメンバー関数には、通知コード、スライダーの位置、および CSliderCtrl オブジェクトへのポインターが渡されます。 ポインターは CSliderCtrl
オブジェクトを指しているにもかかわらず、型 CScrollBar *
であることに注意してください。 スライダー コントロールを操作する必要がある場合は、このポインターの型キャストが必要になることがあります。
スライダー コントロールは、スクロール バーの通知コードを使用するのではなく、異なる通知コードのセットを送信します。 スライダーコントロールは、ユーザーがキーボードを使用してスライダーコントロールを操作するときにのみ、TB_BOTTOM、TB_LINEDOWN、TB_LINEUP、および TB_TOP 通知コードを送信します。 TB_THUMBPOSITION および TB_THUMBTRACK 通知メッセージは、ユーザーがマウスを使用している場合にのみ送信されます。 どちらの場合も、TB_ENDTRACK、TB_PAGEDOWN、および TB_PAGEUP 通知コードが送信されます。
次の表に、通知が送信される原因となる、スライダー コントロールの通知メッセージとイベント (仮想キーコードまたはマウスイベント) を示します。 (標準の仮想キー コードの一覧については、Winuser.h に関するページを参照してください。)
通知メッセージ | 通知が送信される原因となったイベント |
---|---|
TB_BOTTOM | VK_END |
TB_ENDTRACK | WM_KEYUP (ユーザーは、関連する仮想キーコードを送信したキーを解放しました) |
TB_LINEDOWN | VK_RIGHT または VK_DOWN |
TB_LINEUP | VK_LEFT または VK_UP |
TB_PAGEDOWN | VK_NEXT (ユーザーがスライダーの下または右にあるチャネルをクリックした場合) |
TB_PAGEUP | VK_PRIOR (ユーザーがスライダーの上または左にあるチャネルをクリックした場合) |
TB_THUMBPOSITION | TB_THUMBTRACK 通知メッセージに続く WM_LBUTTONUP |
TB_THUMBTRACK | スライダーの移動 (ユーザーがスライダーをドラッグしました) |
TB_TOP | VK_HOME |