1、在对话框中拖入CScrollBar控件,并修改ID,
2、示例一:
void CTestScrollBarDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
int TempPos = pScrollBar->GetScrollPos();
switch(nSBCode)
{
case SB_THUMBPOSITION://拖动滑块
pScrollBar->SetScrollPos(nPos);
break;
case SB_LINELEFT://点击左边的箭头
if(TempPos > 1)
{
TempPos--;
}
pScrollBar->SetScrollPos(TempPos);
break;
case SB_LINERIGHT://点击右边的箭头
if(TempPos<100)
{
TempPos++;
}
pScrollBar->SetScrollPos(TempPos);
break;
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
示例二:
void CBackLightAppDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
DWORD bright = 50;
if(pScrollBar->GetDlgCtrlID() == IDC_SLIDER1)
{
CSliderCtrl *pSlider = (CSliderCtrl *) GetDlgItem(IDC_SLIDER1);
value=pSlider->GetPos();
}
switch (value)
{
case 1 :
bright = 10;
ChangeREG(bright);
break;
case 2 :
bright = 30;
ChangeREG(bright);
break;
case 3 :
bright = 50;
ChangeREG(bright);
break;
case 4 :
bright = 75;
ChangeREG(bright);
break;
case 5:
bright = 100;
ChangeREG(bright);
break;
default :
ChangeREG(bright);
break;
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
nSBCode:代表滚动方向。
nSBCode
表名用户滚动需求的代码,参数是以下的几种之一:
SB_LEFT 滚动到左边
SB_ENDSCROLL 滚动到末尾
SB_LINELEFT 向左滚动
SB_LINERIGHT 向右滚动
SB_PAGELEFT 向左滚动一页
SB_PAGERIGHT 向右滚动一页
SB_RIGHT 滚动到右边
SB_THUMBPOSITION 到绝对位置,位置参数由nPos确定
SB_THUMBTRACK 拖动滚动条到自定义位置,位置参数由nPos定义
nPos:如果nSBCode 为:SB_THUMBPOSITION or SB_THUMBTRACK其中之一,代表滚动条的位置。其他情况未用。
pScrollBar:滚动条窗口包装类指针。如果滚动的消息来自滚动控件,它包含了指向这个控件的指针。如果用户单击一个窗口的滚动条,这个参数为空。这个指针可能是临时的,所以不要为了以后的使用而存储这个参数。
3、设置、取得滑块位置:
void SetPos( int nPos );
int GetPos( ) const;
4、设置、取得滑动范围:
void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE );
void GetRange( int& nMin, int& nMax ) const;
5、设置、取得按下左右箭头滑动间隔:
int SetLineSize( int nSize );
int GetLineSize( ) const;