スライダーコントロールの使い方

ある数値を視覚的に変更できるようにしたい場合にスライダーコントロールは便利です。

具体的には以下のようなものがスライダーコントロールです。

スクリーンショット_091613_110127_PM

レバーを右にドラッグすれば、それに応じて値を上昇させることができます。

このスライダーコントロールの使い方を紹介します。

設置とプロパティ

では、ツールボックスからスライダーコントロールを選び、ドラッグ&ドロップで設置します。

スクリーンショット_091613_110424_PM

設置が終わったらプロパティを設定します。以下にプロパティの意味を紹介します。

  1. ID:コントロールの名前です。
  2. Orientation:レバーの方向を水平方向か垂直方向かに設定します。
  3. Disabled:有効(flase)か無効(true)かを設定します。
  4. Visible:見える(true)か見えない(flase)かを設定します。

スライダーコントロールのポインタは

((CSliderCtrl*)GetDlgItem(スライダーのID))

により取得できます。ただ、いちいちこの方法で取得するのが面倒な場合は、スライダを右クリックして「変数の追加」を選択します。そして、変数名に「m_sldr」を入力して完了を押します。

スクリーンショット_091613_111010_PM

すると、

m_sldr.命令

で簡単にスライダを制御できます。

スライダを制御する

では、スライダの動きをコーディングします。

スライダの最大値と最小値の設定

スライダの最大値や最小値の設定は

m_sldr.SetRange(最小値,最大値);

でできます。そして、スライダの値は

m_sldr.SetPos(値);

で設定できます。値を取得したい場合は

int pos=m_sldr.GetPos();

となります。

イベント

スライダが移動した場合のイベントは

  1. 水平スライダの場合「WM_HSCROLL」、H=Horizontal(水平)
  2. 垂直スライダの場合「WM_VSCROLL」、V=Vertical(垂直)

となります。これらのイベントを記述したい場合は、左の方にあるクラスビューから追加したいクラスを選択します。そして、プロパティからWM_HSCROLLか、WM_VSCROLLを選択します。

スクリーンショット_091613_111715_PM

すると、OnHScrollのイベントを記述できるようになります。

このイベントは、スライダーが実行されたときに生じます。

他の水平スクロールを区別したいのでコードでは

if(pScrollBar==(CScrollBar*)&m_sldr){

命令;

}

とします。こうすることで、m_sldrが実行した際の命令を記述できます。

最後に

スライダーコントロールはエディットコントロールと比べてイベントの記述法が少しやっかいです。

ただ、使い慣れれば、簡単なのでどんどん使っていくといいでしょう。

著者:安井 真人(やすい まさと)