MFC滚动条的使用

1.初始化滚动条和显示静态文本

//水平滚动条
     plistbox = (CScrollBar*)GetDlgItem(IDC_SCROLLBAR1);
     plistbox->SetScrollRange(0,100);// 滑块移动的位置为0-100
    //静态文本框
    char str;
    sprintf(&str,"%d%c",0,'%');
     GetDlgItem(IDC_text)->SetWindowText(&str);

2.添加消息响应函数,并做相关处理

//垂直滚动条的响应函数
void CDialogDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
    // TODO: Add your message handler code here and/or call default

    CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
//水平滚动条的响应函数
void CDialogDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
    // TODO: Add your message handler code here and/or call default
    int nTemp1 = 0;
    int nTemp2 = 0;
    
    nTemp1 = pScrollBar->GetScrollPos();//获取滚动条的当前位置
    switch (nSBCode)
    {
    case SB_THUMBPOSITION://当前的绝对位置,已经停下
        pScrollBar->SetScrollPos(nPos);//设置为当前位置
        break;
    case SB_LINELEFT://按方向键坐时触发
        nTemp2 = 1;
        if(nTemp1>=nTemp2) nTemp1 -=nTemp2;
        else           nTemp1 = 0;
        pScrollBar->SetScrollPos(nTemp1);//设置当前位置
        break;
    case SB_LINERIGHT://按方向键向右移动时
        nTemp2 = 1;
        if(nTemp1<100)    nTemp1 +=nTemp2;
        else            nTemp1 = 100;
        pScrollBar->SetScrollPos(nTemp1);
        break;
    }
    //显示百分比
    char str;
    sprintf(&str,"%d%c",nTemp1,'%');
     GetDlgItem(IDC_text)->SetWindowText(&str);
    CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
原文地址:https://www.cnblogs.com/yuqilihualuo/p/3580716.html