4滚动条 SCROLL BAR

来源:互联网 发布:五花大绑知乎 编辑:程序博客网 时间:2024/04/28 03:31

(1)

添加水平滚动条  IDC_SCROLL 变量m_scroll

(2)

静态文本控件

IDC_POS

(3)

OnInitDlg中添加:

// TODO: 在此添加额外的初始化代码//初始化滚动条模块SCROLLINFO si={0};si.cbSize=sizeof(si);//设置滚动范围和每页大小si.fMask=SIF_RANGE|SIF_PAGE;si.nMin=0;si.nMax=100;si.nPage=10;//将信息设置到控件m_scroll.SetScrollInfo(&si);


(4)为主对话框添加WM_HSCROLL消息响应函数

void CScrollBarDemoDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){// TODO: 在此添加消息处理程序代码和/或调用默认值//取得滚动条当前状态SCROLLINFO si={0};si.cbSize=sizeof(si);si.fMask=SIF_ALL;pScrollBar->GetScrollInfo(&si);int nNewPos=si.nPos;//处理消息switch(nSBCode){//若拖动了滚动条,参数nPos即滑块的新位置case SB_THUMBTRACK:nNewPos=nPos;break;//单击了左箭头,向左移动一个位置case SB_LINELEFT:nNewPos-=1;break;//单击了右箭头case SB_LINERIGHT:nNewPos+=1;break;//向左翻页case SB_PAGELEFT:nNewPos-=si.nPage;break;//向右翻页case SB_PAGERIGHT:nNewPos+=si.nPage;break;default:break;}//将新位置设置到控件if(nNewPos>si.nMax)nNewPos=si.nMax;if(nNewPos<si.nMin)nNewPos=si.nMin;pScrollBar->SetScrollPos(nNewPos);//显示新位置TCHAR szOutput[128]={0};_stprintf(szOutput,_T("当前:%d"),nNewPos);SetDlgItemText(IDC_POS,szOutput);}


0 0
原创粉丝点击