Mfc-slider-controls

提供:Dev Guides
移動先:案内検索

MFC-スライダーコントロール

*Slider Control* (トラックバーとも呼ばれます)は、スライダーとオプションの目盛りを含むウィンドウです。 ユーザーがマウスまたは方向キーを使用してスライダーを動かすと、コントロールは変更を示す通知メッセージを送信します。 スライダーには、水平と垂直の2種類があります。 * CSliderCtrlクラス*で表されます。

____CSliderCtrlクラスのメソッドのリストです。

Sr.No. Name & Description
1

ClearSel

スライダーコントロールの現在の選択をクリアします。

2

ClearTics

スライダーコントロールから現在の目盛りを削除します。

3

Create

スライダーコントロールを作成し、CSliderCtrlオブジェクトにアタッチします。

4

CreateEx

指定されたWindows拡張スタイルでスライダーコントロールを作成し、CSliderCtrlオブジェクトにアタッチします。

5

GetBuddy

指定された位置にあるスライダーコントロールバディウィンドウへのハンドルを取得します。

6

GetChannelRect

スライダーコントロールのチャネルのサイズを取得します。

7

GetLineSize

スライダーコントロールの行サイズを取得します。

8

GetNumTics

スライダーコントロールの目盛りの数を取得します。

9

GetPageSize

スライダーコントロールのページサイズを取得します。

10

GetPos

スライダーの現在の位置を取得します。

11

GetRange

スライダーの最小および最大位置を取得します。

12

GetRangeMax

スライダーの最大位置を取得します。

13.

GetRangeMin

スライダーの最小位置を取得します。

14

GetSelection

現在の選択範囲を取得します。

15

GetThumbLength

現在のトラックバーコントロールのスライダーの長さを取得します。

16

GetThumbRect

スライダーコントロールのつまみのサイズを取得します。

17

GetTic

指定された目盛りの位置を取得します。

18

GetTicArray

スライダーコントロールの目盛り位置の配列を取得します。

19

GetTicPos

クライアント座標で、指定された目盛りの位置を取得します。

20

GetToolTips

スライダーコントロールに割り当てられているツールチップコントロールのハンドルを取得します(存在する場合)。

21

SetBuddy

スライダーコントロールのバディウィンドウとしてウィンドウを割り当てます。

22

SetLineSize

スライダーコントロールの行サイズを設定します。

23

SetPageSize

スライダーコントロールのページサイズを設定します。

24

SetPos

スライダーの現在の位置を設定します。

25

SetRange

スライダーの最小および最大位置を設定します。

26

SetRangeMax

スライダーの最大位置を設定します。

27

SetRangeMin

スライダーの最小位置を設定します。

28

SetSelection

現在の選択範囲を設定します。

29

SetThumbLength

現在のトラックバーコントロールのスライダーの長さを設定します。

30

SetTic

指定した目盛りの位置を設定します。

31

SetTicFreq

スライダーコントロールの増分ごとに目盛りの頻度を設定します。

32

SetTipSide

トラックバーコントロールによって使用されるツールチップコントロールを配置します。

33

SetToolTips

ツールチップコントロールをスライダーコントロールに割り当てます。

新しいMFCダイアログベースのプロジェクトを作成して、簡単な例を見てみましょう。

  • ステップ1 *-プロジェクトが作成されると、テキストコントロールのキャプションであるTODO行が表示されます。 キャプションを削除し、そのIDをIDC_STATIC_TXTに設定します。
  • ステップ2 *-静的テキストコントロールに値変数m_strSliderValを追加します。

スライダーCtrl Var値

  • ステップ3 *-ツールボックスからスライダーコントロールをドラッグします。

スライダーコントロールのドラッグ

  • ステップ4 *-スライダーの制御変数m_sliderCtrlを追加します。

スライダーコントロール変数の追加

  • ステップ5 *-ソリューションのクラスビューに移動します。
  • ステップ6 *-CMFCSliderControlDlgクラスを選択します。
  • ステップ7 *-[プロパティ]ウィンドウで、[メッセージ]をクリックします。

スライダーコントロール

  • ステップ8 *-「WM_HSCROLL」までスクロールダウンして、ドロップダウンメニューをクリックします。 「<追加> OnHScroll」をクリックします。
  • ステップ9 *-OnInitDialog()関数内でSliderおよびStatic Textコントロールを初期化します。
BOOL CMFCSliderControlDlg::OnInitDialog() {
   CDialogEx::OnInitDialog();

  //Set the icon for this dialog. The framework does this automatically
  //when the application's main window is not a dialog
   SetIcon(m_hIcon, TRUE);           //Set big icon
   SetIcon(m_hIcon, FALSE);           //Set small icon

  //TODO: Add extra initialization here
   m_sliderCtrl.SetRange(0, 100, TRUE);
   m_sliderCtrl.SetPos(0);
   m_strSliderVal.Format(_T("%d"), 0);

   return TRUE;//return TRUE unless you set the focus to a control
}
  • ステップ10 *-OnVScroll()の関数コードブロック内に次のコードを追加します
void CMFCSliderControlDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar) {
  //TODO: Add your message handler code here and/or call default
   if (pScrollBar == (CScrollBar* )&m_sliderCtrl) {
      int value = m_sliderCtrl.GetPos();
      m_strSliderVal.Format(_T("%d"), value);
      UpdateData(FALSE);
   }else {
      CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
   }
}
  • ステップ11 *-上記のコードをコンパイルして実行すると、次の出力が表示されます。

スライダーコントロール