滑动控件是MFC中常用的控件之一。它由一个滑动条,一个滑块和可选刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值。通常,在滑动控件附近一定有标签控件或编辑框控件,用于显示相应的值。接下来我们看看简单的用法:
1、在对话框添加一个slider滑动块控件,然后给该slider滑动块控件添加一个关联变量m_Slider,如下图所示:
2、初始化滑块,在对话框初始化程序里面,添加如下代码:
m_Slider.SetRange(0,20);//设置范围为0~20
m_Slider.SetPos(-1); //设置当前值为-1
m_Slider.SetLineSize(1);//设置按下左/右箭头移动量为1个单位
m_Slider.SetTicFreq(1); //设置滑动条刻度的频度
3、将滑块数据显示到编辑框中,在【项目】-【类向导】-【消息】页面,找到消息事件函数WM_HSCROLL,双击出现在右边方框,再次双击右边方框OnHScroll函数,在弹出的消息事件函数里面,添加如下代码:
void CClientADlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
UpdateData(TRUE);
m_Speed = m_Slider.GetPos();//获得滑动块当前位置
UpdateData(FALSE);
CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
其中m_Speed是编辑框的对应的double变量,整个使用过程完毕。
最后附带Slide Control常用的设置属性函数:
*GetRange,SetRange函数
用于查询和设置滑动条的取值范围,默认为0~100。函数定义形式如下:
void GetRange(int &nMin,int &nMax) const;
void SetRange(int nMin,int nMax,BOOL bRedrGETaw=FALSE);
*GetPos,SetPos函数
用于查询和设置滑动条的当前值。函数定义形式如下:
int GetPos() const;
int SetPos(int nPos);
* GetLineSize,SetLineSize函数
用于查询和设置在按一下右或左箭头时滑块的移动量,默认为1个单位。函数定义形式如下:
int GetLineSize() const;
int SetLineSize(int nSize);
*GetPageSize,SetPageSize函数
用于查询和设置函滑块和块移动量,块移动量是指当按下PgUp或PgDown时滑块的移动量。函数定义形式如下:
int GetPageSize() const;
int SetPageSize(int nSize);
* SetTicFreq函数
用于设置滑动条刻度的频度。默认为一个单位一个函数。函数定义形式如下:
void SetTicFreq(int nFreq);
*SetTic函数
用于在指定的位置设置刻度。Windows默认的刻度是均匀的。函数定义形式如下:
BOOL SetTic(int nTic);
*ClearTics函数
用于清除所有的刻度。函数定义形式如下:
void ClearTics(BOOL bRedraw=FALSE);
我们在初始化时写入以下语句: m_Slider.SetRange(-100,100);
m_Slider.SetTicFreq(10);
即:设置范围为-100到100,刻度为每10个单位一个。