トラックバー通知メッセージを処理する方法
トラックバーは、親に WM_HSCROLL または WM_VSCROLL メッセージを送信することにより、親ウィンドウにユーザー アクションを通知します。
知っておくべきこと
テクノロジ
前提条件
- C/C++
- Windows ユーザー インターフェイス プログラミング
手順
トラックバー通知メッセージを処理する
次のコード例は、トラックバーの親ウィンドウが WM_HSCROLL メッセージを受信したときに呼び出される関数です。 この例のトラックバーには、TBS_ENABLESELRANGE スタイルがあります。 スライダーの位置は選択範囲と比較され、必要に応じてスライダーは選択範囲の開始位置または終了位置に移動します。
// TBNotifications - handles trackbar notifications received
// in the wParam parameter of WM_HSCROLL. This function simply
// ensures that the slider remains within the selection range.
VOID WINAPI TBNotifications(
WPARAM wParam, // wParam of WM_HSCROLL message
HWND hwndTrack, // handle of trackbar window
UINT iSelMin, // minimum value of trackbar selection
UINT iSelMax) // maximum value of trackbar selection
{
DWORD dwPos; // current position of slider
switch (LOWORD(wParam)) {
case TB_ENDTRACK:
dwPos = SendMessage(hwndTrack, TBM_GETPOS, 0, 0);
if (dwPos > iSelMax)
SendMessage(hwndTrack, TBM_SETPOS,
(WPARAM) TRUE, // redraw flag
(LPARAM) iSelMax);
else if (dwPos < iSelMin)
SendMessage(hwndTrack, TBM_SETPOS,
(WPARAM) TRUE, // redraw flag
(LPARAM) iSelMin);
break;
default:
break;
}
}
解説
TBS_VERT スタイル トラックバーを含むダイアログ ボックスは、WM_VSCROLL メッセージを取得時に、この関数を使用できます。
関連トピック