多语言展示
当前在线:1534今日阅读:155今日分享:35

MFC应用实例:[55]ScrollBar的使用

本经验是介绍如何使用ScrollBar的,其中包括Horizontal ScrollBar和Vertical ScrollBar两种控件的使用。
工具/原料

Microsoft Visual Studio 2015

方法/步骤
1

新建一个基于对话框的应用程序,工程名为ScrollBar。

2

界面设计如下添加一个Horizontal ScrollBar,一个Vertical ScrollBar,两个文本控件和两个按钮。

3

为Horizontal ScrollBar添加响应函数OnHScroll(),响应函数OnHScroll()中添加一下代码:void CScrollBarDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { int nTemp1,nTemp2; nTemp1=pScrollBar->GetScrollPos();   CString str; str.Format('%d',nTemp1); GetDlgItem(IDC_HDATA)->SetWindowText(str); switch(nSBCode) { case SB_THUMBPOSITION: pScrollBar->SetScrollPos(nPos); break; case SB_LINELEFT:  nTemp2=(nMax-nMin)/10; if((nTemp1-nTemp2)>nMin) nTemp1-=nTemp2; else nTemp1=nMin; pScrollBar->SetScrollPos(nTemp1); break; case SB_LINERIGHT:   nTemp2=(nMax-nMin)/10; if((nTemp1+nTemp2)SetScrollPos(nTemp1); break; }  CDialog::OnHScroll(nSBCode, nPos, pScrollBar);}

4

为Vertical ScrollBar添加响应函数OnVScroll(),响应函数OnVScroll()中添加一下代码:void CScrollBarDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { int nTemp1,nTemp2; nTemp1=pScrollBar->GetScrollPos();   CString str; str.Format('%d',nTemp1); GetDlgItem(IDC_VDATA)->SetWindowText(str); switch(nSBCode) { case SB_THUMBPOSITION: pScrollBar->SetScrollPos(nPos); break; case SB_LINEUP:  nTemp2=(nMax-nMin)/10; if((nTemp1-nTemp2)>nMin) nTemp1-=nTemp2; else nTemp1=nMin; pScrollBar->SetScrollPos(nTemp1); break; case SB_LINEDOWN:   nTemp2=(nMax-nMin)/10; if((nTemp1+nTemp2)SetScrollPos(nTemp1); break; }  CDialog::OnVScroll(nSBCode, nPos, pScrollBar);}

5

为初始化函数添加一下代码:CScrollBar*pSB=(CScrollBar*)GetDlgItem(IDC_HSCROLL); pSB->SetScrollRange(nMin,nMax);  pSB=(CScrollBar*)GetDlgItem(IDC_VSCROLL); pSB->SetScrollRange(nMin,nMax);

6

程序运行如下:

注意事项

注意ScrollBar的使用

推荐信息