VC控件 滑动条Slider

时间:2023-01-16 23:18:24

在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为一个静态文本框的控件变量,用来显示滑动条所处的位置。