MFC-Scroll Bar用法

这里举个水平滚动条的例子:

//先在初始化对话框那里初始化滚动条信息

    //初始化滚动条信息
    SCROLLINFO si = { 0 };
    si.cbSize = sizeof(si);
    si.fMask = SIF_RANGE | SIF_PAGE;
    si.nMin = 0;
    si.nMax = 100;
    si.nPage = 10;
    //m_scroll是滚动条关联的控件变量
    m_scroll.SetScrollInfo(&si);

然后再窗口消息(WN_HSCROLL)中设置滚动条

“`
void CMFCTESTDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

//获取滚动条信息
SCROLLINFO si = { 0 };
si.cbSize = sizeof(si);
si.fMask = SIF_ALL;
pScrollBar->GetScrollInfo(&si);
//获取当前新的位置
int iNewPos = si.nPos;
switch (nSBCode)
{
case SB_LINELEFT:
    iNewPos -= 1;
    break;
case SB_LINERIGHT:
    iNewPos += 1;
    break;
case SB_PAGELEFT:
    iNewPos -= si.nPage;
    break;
case SB_PAGERIGHT:
    iNewPos += si.nPage;
    break;
case SB_THUMBTRACK:
    iNewPos = nPos;
    break;
}
//处理超出范围的时候
if (iNewPos < 0)
    iNewPos = max(iNewPos, si.nMin);
else
    iNewPos = min(iNewPos, si.nMax);
//设置新的滚动条位置
pScrollBar->SetScrollPos(iNewPos);
//在静态文本中显示滚动条进度
CString strText;
strText.Format(_T("%d"), iNewPos);
SetDlgItemText(IDC_STATIC_PROCCESS, strText);

CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
```

如图:
MFC-Scroll Bar用法_第1张图片

你可能感兴趣的:(mfc,滚动条,SrcrollBar)