MFC-Scroll Bar用法

来源:互联网 发布:flume采集数据到kafka 编辑:程序博客网 时间:2024/05/21 06:14

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

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

    //初始化滚动条信息    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);}```

如图:

0 0
原创粉丝点击