- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> 链接点击跳转博客主页
目录
CSliderCtrl
创建滑动条
- 在对话框编辑器中,从工具箱中拖拽一个Slider Control到对话框资源。在类向导中为Slider Control添加变量,类型为
CSliderCtrl
。
设置滑动条属性
-
在对话框的属性窗口中,可以设置Slider Control的各种属性,如范围(Range)、位置(Position)、刻度(Tics)等。
-
范围:滑动条的最小值和最大值。
-
位置:滑块的当前位置。
-
刻度:在滑动条上显示的刻度标记。
成员函数
-
SetRange(int nLower, int nUpper)
:设置滑动条的范围。 -
SetRangeMax(int nMax)
:设置滑动条的最大值。 -
SetRangeMin(int nMin)
:设置滑动条的最小值。 -
SetPos(int nPos)
:设置滑动条的位置。 -
GetPos()
:获取滑动条的位置。 -
SetTicFreq(int nFreq)
:设置刻度频率。 -
SetSelection(int nMin, int nMax)
:设置滑动条的选择范围。
消息处理
- 滑动条控件可以发送多种消息,如
NM_CUSTOMDRAW
和NM_SLIDERPOSCHANGED
。在对话框类中,可以通过消息映射来处理这些消息。
注意事项
-
确保在创建滑动条之前,父窗口已经创建。
-
滑动条的父窗口应该是对话框或框架窗口。
-
滑动条的ID应该在对话框类的消息映射中正确映射。
-
处理滑动条消息时,确保消息处理函数与消息映射中的ON_NOTIFY宏匹配。
示例代码
cpp
void CMainDlg::OnBnClickedButton25()
{
CSliderCtrl* pSlider = (CSliderCtrl*)GetDlgItem(IDC_SLIDERMAIN);
pSlider->SetRange(0, 100);
pSlider->SetPos(20);
}
void CMainDlg::OnNMCustomdrawSlider2(NMHDR* pNMHDR, LRESULT* pResult)
{
CSliderCtrl* pSlider = (CSliderCtrl*)GetDlgItem(IDC_SLIDERMAIN);
CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC_SLIDER);
int nPos = pSlider->GetPos();
CString strPos;
strPos.Format(_T("%d"), nPos);
pStatic->SetWindowText(strPos);
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
}