MFC - Slider 滑块控件
Slider滑块控件(也称为轨迹栏)是一个包含滑块和可选刻度线的窗口。 当用户使用鼠标或方向键移动滑块时,控件会发送通知消息来指示更改。 滑块有两种类型:水平滑块和垂直滑块。 它由CSliderCtrl类表示。
让我们通过创建一个新的基于 MFC 对话框的项目来研究一个简单的示例。
步骤 1 − 创建项目后,您将看到 TODO 行,即文本控件的标题。 删除标题并将其 ID 设置为 IDC_STATIC_TXT。
步骤 2 − 为静态文本控件添加值变量 m_strSliderVal。
步骤 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 − 当上面的代码被编译并执行时,您将看到以下输出。

