スライダーの移動を制限する方法

Trackbar コントロールについて」で説明されているように、trackbar の範囲の一部を選択範囲として設定することができます。 選択範囲の目的の1つは、スライダーの移動を制限して、範囲外の部分を制限することです。

知っておく必要がある情報

テクノロジ

前提条件

  • C/C++
  • Windows ユーザーインターフェイスのプログラミング

手順

スライダーの移動を制限する

次のコード例では、選択範囲外に移動するたびにスライダーの位置をリセットすることで、スライダーの移動を制限しています。

case WM_HSCROLL:
    {
        HWND hTrackbar = GetDlgItem(hDlg, IDC_SLIDER1);
        
        if (hTrackbar == (HWND)lParam)
        {
            int newPos    = SendMessage(hTrackbar, TBM_GETPOS, 0, 0);
            int selStart  = SendMessage(hTrackbar, TBM_GETSELSTART, 0, 0);
            int selEnd    = SendMessage(hTrackbar, TBM_GETSELEND, 0, 0);
            
            if (newPos > selEnd)
            {
                SendMessage(hTrackbar, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)selEnd);
            }
            
            else if (newPos < selStart)
            {
                SendMessage(hTrackbar, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)selStart);
            }
        }
        
        break;
    }

解説

このコードスニペットは、ダイアログボックスのウィンドウプロシージャの一部になります。

Trackbar コントロールの使用