MFC - Slider 滑块控件

Slider滑块控件(也称为轨迹栏)是一个包含滑块和可选刻度线的窗口。 当用户使用鼠标或方向键移动滑块时,控件会发送通知消息来指示更改。 滑块有两种类型:水平滑块和垂直滑块。 它由CSliderCtrl类表示。

让我们通过创建一个新的基于 MFC 对话框的项目来研究一个简单的示例。

步骤 1 − 创建项目后,您将看到 TODO 行,即文本控件的标题。 删除标题并将其 ID 设置为 IDC_STATIC_TXT。

步骤 2 − 为静态文本控件添加值变量 m_strSliderVal。

滑块 Ctrl 变量值

步骤 3 − 从工具箱中拖动滑块控件。

拖动滑块控件

步骤 4 − 为滑块添加控件变量 m_sliderCtrl。

滑块控件添加变量

步骤 5 − 转到解决方案中的类视图。

步骤 6 − 选择 CMFCSliderControlDlg 类。

步骤 7 − 在"属性"窗口中,单击"消息"。

滑块控件

步骤 8 − 向下滚动到"WM_HSCROLL"并单击下拉菜单。 点击 "<Add> OnHScroll"。

步骤 9 − 在 OnInitDialog() 函数内初始化 Slider 和 Static Text 控件。

BOOL CMFCSliderControlDlg::OnInitDialog() {
   CDialogEx::OnInitDialog();
  
   // 设置该对话框的图标。 框架会自动执行此操作
   // 当应用程序的主窗口不是对话框时
   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; // 返回 TRUE 除非您将焦点设置到控件
}

步骤 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 − 当上面的代码被编译并执行时,您将看到以下输出。

滑块控件

❮ mfc_windows_controls.html