MFC中Slider和Scroll Bar控件的使用
在学习mfc的过程中,总是需要不断的接触新的东西,本人在编程序的过程中也是,那时就想做出滑动条,差了很多资料,做出来了,总结一下与大家共同分享。
Slider的使用。
先将一个slider拖入对话框内。设置属性。例如为IDC_SLIDER。
在classwizard里设置关联变量m_slider。
在相应dialog类中,oninitdialog函数中添加初始化信息。
(若无该函数则在view目录下classwizard中添加WM_INITDIALOG消息)
m_slider.SetRange(0,100,TRUE); //范围0到100
m_slider.SetTicFreq(10);//设置显示刻度的间隔
m_slider.SetLineSize(10);//一行的大小,对应键盘的方向键
m_slider.SetPos(20);//当前停留位置
还可设置很多,具体参见CSliderCtrl百度百科,在此只罗列如上设置。
接着在classwizad中添加WM_HSCROLL消息,得到
函数。
在函数中,得到当前滑动条位置并进行相应处理。
m_num得到当前位置,即可进行下一步。
Scroll Bar的使用。
先将一个Scroll Bar拖入对话框内。设置属性。例如为IDC_SCROLLBAR。
在classwizard里设置关联变量m_scrollbar。
在相应dialog类中,oninitdialog函数中添加初始化信息。
EnableScrollBar( ESB_ENABLE_BOTH);//使两端的箭头可用
m_scrollbar.SetScrollRange(0,100);//设置范围0到100
m_scrollbar.SetScrollPos(50);//设置当前位置
还可设置很多,具体参见CScrollBar百度百科,在此只罗列如上设置。
接着在classwizad中添加WM_HSCROLL消息,得到
函数。
添加如下代码:(m_num表示滑块当前位置)
switch(nSBCode)
{
case SB_THUMBPOSITION://拖动滑块的情况
m_scrollbar.SetScrollPos(nPos);
break;
case SB_LINELEFT://点击左边的箭头
if(m_num>5)
{
m_num-=5;//设置点击一下箭头数量的变化
}
m_scrollbar.SetScrollPos(m_num);
break;
case SB_LINERIGHT://点击右边的箭头
if(m_num<95)
{
m_num+=5;
}
m_scrollbar.SetScrollPos(m_num);
break;
}
m_num=m_scrollbar.GetScrollPos(); //得到位置OK了。