CStrollView 滚动条
来源:互联网 发布:windows系统排名 编辑:程序博客网 时间:2024/06/05 23:59
OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){// TODO: 在此添加消息处理程序代码和/或调用默认值int nMin,nMax,nCurPos,nDis;nDis=0;GetScrollRange(SB_VERT,&nMin,&nMax);nCurPos=GetScrollPos (SB_VERT);SCROLLINFO si ; GetScrollInfo (SB_VERT,&si,SIF_ALL); switch(nSBCode) //处理滚动信息{case SB_LINEUP: //向左的箭头被按下nCurPos=nCurPos-10;Invalidate();break; case SB_LINEDOWN:nCurPos=nCurPos+10;Invalidate();break; //向右的箭头被按下case SB_THUMBTRACK: //鼠标拖动si.cbSize=sizeof(SCROLLINFO);GetScrollInfo(SB_VERT,&si,SIF_TRACKPOS);nPos=si.nTrackPos; SetScrollPos(SB_VERT,nPos);nDis=(int)nPos-nCurPos;if (nDis>20||nDis<-20){Invalidate();nCurPos+=nDis;}break;}if(nCurPos>nMax) nCurPos=nMax;SetScrollPos(SB_VERT,nCurPos); //更新信息CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);}
因为: 窗口滚动条不是控件滚动条 所以pScrollBar始终为NULL
同时,nPos参数只有16位长.克服这个限制可以使用SCROOLINFO结构运行::GetScrollInfo.SCROLLINFO 结构中的nTrackPos是一个真正的32位
因此,如果滚动条范围很大,需要使用SCROOLINFO获得32位的值
参考资料:
http://bbs.csdn.net/topics/300120695
- CStrollView 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- 滚动条
- crontab
- Jquery初识
- Object-c学习之路六(oc字符串文件读写)
- POJ-1703-Find them, Catch them
- Java Reflection: Generics
- CStrollView 滚动条
- java队列和栈的使用
- MySql控制台修改用户密码
- 网上找的一个“回到顶部”的小链接
- [Linux] rlwrap - 解决Linux下sqlplus退格、上翻键乱码问题
- iOS4 and wireless application deploy
- 将matlab中数据保存为txt或dat格式
- linux学习笔记之--文件及目录权限
- mysql 实现按 where in () 中的顺序排序,用find_in_set() 函数