先在对话框的OnInitDialog中设置滚动条的范围
CScrollBar *pScrollBar = (CScrollBar*)GetDlgItem(IDC_SCROLLBAR1);
pScrollBar->SetScrollRange(0, 100);
接下来响应对话框的WM_VSCROLL和WM_HSCROLL消息
void CXXXDlg::OnVScroll(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::OnVScroll(nSBCode, nPos, pScrollBar);
}
void CXXXDlg::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);
}
我们可以再对话框中重写GetScrollBarCtr