MFC使用滚动条

先在对话框的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

你可能感兴趣的:(MFC使用滚动条)