演示垂直滚动条CScrollbar控件的使用

来源:互联网 发布:php 考试系统源码下载 编辑:程序博客网 时间:2024/06/06 01:35

/*Title:演示垂直滚动条CScrollbar控件的使用Description: OnVScroll demoEnvironment: VS2010SP1Author:kagulaDate:2015-8-11*///set scrollbar knob positionvoid CtestScrollDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){int nMax;int nMin;pScrollBar->GetScrollRange(&nMin,&nMax);int currentPos = pScrollBar->GetScrollPos();  int stride = (nMax-nMin)/10;#ifdef _DEBUGTRACE(L"pScrollBar->GetScrollPos()=%d\n",currentPos);#endifswitch(nSBCode){case SB_THUMBPOSITION://Drop knobcase SB_THUMBTRACK://Drag knobpScrollBar->SetScrollPos(nPos);break;case SB_LINEUP: //click up arrow case SB_PAGEUP: //stroke page up in keyboardif((currentPos-stride)>nMin)currentPos-=stride;elsecurrentPos=nMin;pScrollBar->SetScrollPos(currentPos);break;case SB_LINEDOWN:  //click down arrowcase SB_PAGEDOWN: //stroke page down in keyboardif((currentPos+stride)<nMax)currentPos+=stride;elsecurrentPos=nMax;pScrollBar->SetScrollPos(currentPos);break;} CDialogEx::OnVScroll(nSBCode, nPos, pScrollBar);}//create scrollbar controllervoid CtestScrollDlg::OnBnClickedBtnAdd(){if (m_pScrollbar==nullptr){CRect rect;GetClientRect(rect);rect.left = rect.right - GetSystemMetrics(SM_CXVSCROLL);m_pScrollbar = new CScrollBar;m_pScrollbar->Create(WS_VISIBLE|SB_VERT,rect,this,IDC_SCROLLBAR1);m_pScrollbar->SetScrollRange(0,100);}}//release scrollbar controllervoid CtestScrollDlg::OnBnClickedBtnDel(){if (m_pScrollbar){m_pScrollbar->DestroyWindow();delete m_pScrollbar;m_pScrollbar = nullptr;}}void CtestScrollDlg::OnDestroy(){CDialogEx::OnDestroy();OnBnClickedBtnDel();}



0 0