MFC - 滑块控件



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

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

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

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

Slider Ctrl Var Value

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

Drag Slider Controls

步骤 4 - 为滑块添加一个控件变量 m_sliderCtrl。

Slider Control Add Variable

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

步骤 6 - 选择 CMFCSliderControlDlg 类。

步骤 7 - 在“属性”窗口中,单击“消息”。

Slider Controls

步骤 8 - 向下滚动到“WM_HSCROLL”并单击下拉菜单。单击“<添加> OnHScroll”。

步骤 9 - 在 OnInitDialog() 函数内初始化滑块和静态文本控件。

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 - 编译并执行上述代码后,您将看到以下输出。

Slider Controls
mfc_windows_controls.htm
广告

© . All rights reserved.