在MFC中滑动条(CSliderCtrl)是个常用的控件,用法如下:
1、设置、取得滑动范围:
void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE );
void GetRange( int& nMin, int& nMax ) const;
2、设置、取得按下左右箭头滑动间隔:
int SetLineSize( int nSize );
int GetLineSize( ) const;
3、设置、取得按下PgUp、PgDown时滑动间隔:
int SetPageSize( int nSize );
int GetPageSize( ) const;
4、设置、取得滑块位置:
void SetPos( int nPos );
int GetPos( ) const;
5、设置滑动条刻度的频度:
void SetTicFreq( int nFreq );
6.设置移动滑块时触发的回调事件函数:
选择Slider的“事件”然后选择第一个过程(NM_CUSTOMDRAW)后加入触发的执行代码.
实例:
在对话框中放一个Slider控件,添加相应的Ctrl型变量为m_slider。在对话框初始化函数OnInitDialog()中添加:
BOOL CLlk_wgDlg::OnInitDialog()
{
CDialog::OnInitDialog();
/*
... ...
*/
// TODO: Add extra initialization here
m_slider.SetRange(1,3000); // 设置滑动范围 (单位:毫秒).
m_slider.SetTicFreq(300); // 每10个单位画一刻度.
m_slider.SetPos(1000); // 设置默认单消间隔时间为1秒.
return TRUE; // return TRUE unless you set the focus to a control
}
填充 触发消息: NM_CUSTOMDRAW 对应的响应函数:
void CLlk_wgDlg::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
UpdateData(true);
float show_time;
CString pTempInfo;
show_time=m_slider.GetPos();
show_time/=1000;
pTempInfo.Format((" %5.3f 秒"),show_time); // 浮点数输出5个有效位,其中3个小数位.
m_TimerShow.SetWindowText(pTempInfo);
pTempInfo.ReleaseBuffer();
UpdateData(false);
*pResult = 0;
}
其中m_TimerShow为一个静态文本框的控件变量,用来显示滑动条所处的位置。