CScrollBar的使用
在对话框中添加一个垂直滚动条控件,关联一个变量CScrollBar m_vScroll,在头文件定义CRect rt_mvScroll保存滚动条控件的位置,
定义一个int nVscroll,保存滑块的位置在OnInitDialog()里面添加
CRect rect; GetClientRect(rect); SCROLLINFO si; si.cbSize = sizeof(SCROLLINFO);; si.nMin = 0; si.nMax = 100; si.nPage = 5 ; si.fMask = SIF_POS|SIF_RANGE|SIF_PAGE; m_vScroll.SetScrollInfo(&si, TRUE); m_vScroll.GetWindowRect(rt_mvScroll);//滚动条所在的位置 ScreenToClient(rt_mvScroll);
响应对话框中WM_VScorll消息
void CScrollDemoDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: 在此添加消息处理程序代码和/或调用默认值 SCROLLINFO si; si.cbSize = sizeof(si); m_vScroll.GetScrollInfo(&si, SIF_POS|SIF_PAGE|SIF_RANGE); nVscroll = si.nPos; switch(nSBCode) { case SB_LINEDOWN: nVscroll += 10; if (nVscroll > (si.nMax - si.nMin - si.nPage )) { nVscroll = si.nMax - si.nMin - si.nPage; } break; case SB_LINEUP: nVscroll -= 10; if (nVscroll < si.nMin) { nVscroll = 0; } break; case SB_PAGEDOWN: nVscroll += si.nPage; if (nVscroll > (si.nMax - si.nMin - si.nPage)) { nVscroll = si.nMax - si.nMin - si.nPage; } break; case SB_PAGEUP: nVscroll -= si.nPage; if (nVscroll < si.nMin) { nVscroll = 0; } break; case SB_THUMBTRACK: nVscroll = nPos; break; } ScrollWindow(0, -(nVscroll -si.nPos) , NULL ,NULL); m_vScroll.MoveWindow(rt_mvScroll, TRUE); si.fMask = SIF_POS; si.nPos = nVscroll; m_vScroll.SetScrollInfo(&si, TRUE); CDialog::OnVScroll(nSBCode, nPos, pScrollBar); }
响应WM_MOUSEWHELL消息
BOOL CScrollDemoDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { // TODO: 在此添加消息处理程序代码和/或调用默认值 //向下滚 if (zDelta == -120) { nVscroll += 10; OnVScroll(SB_PAGEDOWN, nVscroll, &m_vScroll); } else if (zDelta == 120) { nVscroll -= 10; OnVScroll(SB_PAGEUP, nVscroll, &m_vScroll); } m_vScroll.MoveWindow(rt_mvScroll, TRUE); return CDialog::OnMouseWheel(nFlags, zDelta, pt); }
CScrollBar的使用相关推荐
- VC:其他控件(CProgressCtrl、CScrollBar、CDateTimeCtrl、CMonthCalCtrl)
1.进度条 m_progressCtrl.SetRange(0,100); for(int i=0;i<100;i++) { m_progressCtrl.SetPos(i); Sleep(10 ...
- MFC入门基础(十二)控件 CScrollBar的使用
1.参考博客: VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)-软件开发-鸡啄米 以下内容是参考上述博客大神的稍作修改 2. 首先还是创建一个基于对话框的MFC工程 ...
- 滚动条(CScrollBar)控件
转自:http://hi.baidu.com/3582077/item/bb76bb564dc8589609be1721 这里不讲滚动条的使用方法了,只说怎么自绘滚动条控件. 滚动条基本知识参考htt ...
- [转]Windows与VC命名规则
转自:http://hi.baidu.com/11158512/blog/item/0fbd5535cbfb5d1c91ef3970.html 匈牙利命名法是一种编程时的命名规范.基本原则是:变量名= ...
- wtl中显示html,用WTL构建HTML界面应用程序(1)
主要针对有一定Windows编程经验的读者.阅读本文需要对COM机制有一定的了解,最好掌握C++的STL,熟悉模板机制.本文假定您使用的是Visual C++(6.0以上版本),并正确安装了WTL 7 ...
- MFC滑块的使用方式
MFC滑块的使用方式: 如下六个滑块的使用方式: void CPropColor::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) ...
- IDC_EDIT控件输入数字改变IDC_SCROLLBAR滑块位置
IDC_EDIT控件输入数字改变IDC_SCROLLBAR滑块位置 之前的代码能够将滑块的位置信息转换成数字显示在编辑框,但是编辑框的数字信息无法在滑块的位置来体现出来,也就是说,我编辑框中输入数字, ...
- 第三部分:MFC中控件的样式
2019独角兽企业重金招聘Python工程师标准>>> 第三部分:MFC中控件的样式 控件是用来建立Windows应用程序用户界面的用户界面对象.你所见到的大部分Windows应用程 ...
- MFC消息处理学习总结
Windows消息机制概述 http://www.cppblog.com/suiaiguo/archive/2009/07/18/90412.html 消息是指什么? 消息系统对于一个win ...
最新文章
- 十问亿级神经元类脑计算机:AI领域有望突破,哪些还需火候
- php爬取ckplayer,CKplayer站外调用示例附最终效果
- FastAPI ------框架基础
- 计算机视觉与深度学习 | SLAM之傻瓜书《 SLAM for Dummies》
- [cocos2dx笔记010]用于UI的事件管理器
- 13凯越门锁继电器在哪里_凯越中控门锁不工作.更换中央门锁装置故障依旧.
- 图解从上电到执行main函数的处理
- 游戏开发之游戏策划的基本原则
- 详解java的构造方法
- PHP基础知识------页面静态化
- Qt组态软件设计文章导航
- qt怎么连接oracle,Qt连接Oracle数据库详细介绍(QOCI)
- sqli-labs 第八关盲注脚本
- android usb type-c
- 局域网访问文件提示服务器内存不足,“服务器存储空间不足”的问题
- 极客头条|5月15日科技要闻:华为三星和解;联想全球首发折叠电脑;苹果回应美高院裁决
- 电商广告营销中,有哪些常见公式和优化手段
- 边缘风行视频采集软件V1.0
- 教你如何对产品做AB测试(abtest)
- 基于FPGA的数字电子钟的设计与实现