MFC入门基础(十二)控件 CScrollBar的使用
1、参考博客:
VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)-软件开发-鸡啄米
以下内容是参考上述博客大神的稍作修改
2、 首先还是创建一个基于对话框的MFC工程
3、 生成一个自动的对话框模板,删除里面的内容,添加一个Horizontal Scroll Bar控件,ID设置为IDC_HORI_SCROLLBAR。再添加一个静态文本控件和一个编辑框,静态文本控件的Caption属性设为“滚动块当前位置:”,编辑框的ID设为IDC_HSCROLL_EDIT,Read Only属性设为True。修改完之后如下:
4、右击滚动条IDC_HORI_SCROLLBAR,添加控件变量m_horiScrollbar(我这个下面是已经添加完毕的效果)
5、修改Ctest06Dlg::OnInitDialog()里面的代码如下:
BOOL Ctest06Dlg::OnInitDialog()
{CDialogEx::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。// IDM_ABOUTBOX 必须在系统命令范围内。ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){BOOL bNameValid;CString strAboutMenu;bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);ASSERT(bNameValid);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动// 执行此操作SetIcon(m_hIcon, TRUE); // 设置大图标SetIcon(m_hIcon, FALSE); // 设置小图标// TODO: 在此添加额外的初始化代码// 设置水平滚动条的滚动范围为1到100 m_horiScrollbar.SetScrollRange(1, 100); // 设置水平滚动条的初始位置为20 m_horiScrollbar.SetScrollPos(20); // 在编辑框中显示20 SetDlgItemInt(IDC_HSCROLL_EDIT, 20); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
6、下面是重载Ctest06Dlg类的OnHScroll函数 ,找到对话框模板,右击属性,找到消息,进行添加如下:
最后里面实现函数如下:
void Ctest06Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{// TODO: 在此添加消息处理程序代码和/或调用默认值int pos = m_horiScrollbar.GetScrollPos(); // 获取水平滚动条当前位置 switch (nSBCode) { // 如果向左滚动一列,则pos减1 case SB_LINELEFT: pos -= 1; break; // 如果向右滚动一列,则pos加1 case SB_LINERIGHT: pos += 1; break; // 如果向左滚动一页,则pos减10 case SB_PAGELEFT: pos -= 10; break; // 如果向右滚动一页,则pos加10 case SB_PAGERIGHT: pos += 10; break; // 如果滚动到最左端,则pos为1 case SB_LEFT: pos = 1; break; // 如果滚动到最右端,则pos为100 case SB_RIGHT: pos = 100; break; // 如果拖动滚动块滚动到指定位置,则pos赋值为nPos的值 case SB_THUMBPOSITION: pos = nPos; break; // 下面的m_horiScrollbar.SetScrollPos(pos);执行时会第二次进入此函数,最终确定滚动块位置,并且会直接到default分支,所以在此处设置编辑框中显示数值 default: SetDlgItemInt(IDC_HSCROLL_EDIT, pos); return; } // 设置滚动块位置 m_horiScrollbar.SetScrollPos(pos); CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
7、最终实现效果如下:
MFC入门基础(十二)控件 CScrollBar的使用相关推荐
- MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片
最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序 ...
- mfc入门基础(六)创建模态对话框与非模态对话框
参考博客: VS2010/MFC编程入门之十一(对话框:模态对话框及其弹出过程)-软件开发-鸡啄米 一.创建模态对话框 1.接着上节中的test02的例子来讲,找到test02.cpp文件,找到函数I ...
- iOS开发UI基础—手写控件,frame,center和bounds属性
iOS开发UI基础-手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...
- MFC设置对话框背景色及控件颜色
MFC设置对话框背景色及控件颜色 一.使用背景图片更改对话框背景色 在对话框源文件void CxxDlg::OnPaint()函数中 if (IsIconic()) { (这里省略) } else { ...
- MFC中使用TAB Control控件
2019独角兽企业重金招聘Python工程师标准>>> MFC中使用TAB Control控件 MFC中使用TAB Control控件(转) 假如我现在有个SDI程序,View是Fo ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- vue实战入门基础篇二:从零开始仿门户网站实例-开发框架搭建
上一篇:vue实战入门基础篇一:从零开始仿门户网站实例-前期准备工作 vue实战入门基础篇二:从零开始仿门户网-2022-2-23 21:00:27 一.目录 第一篇:前期准备工作 第二篇:开发框架搭 ...
- Oracle入门(十二)之SQL的DDL
一.数据类型 Character 数据类型 Number 数据类型 Date 数据类型 Raw 和 Long Raw 数据类型 LOB 数据类型 注:Oracle数据类型详解 二.表 (1)创建表 c ...
- 用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果(转)
用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果(转) 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://hcq11.blogbus.com/logs/5 ...
- 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) ....
可视化webpart基础开发--TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 作者:miragesky2049 原文地址:http://blog.csdn.net/mirages ...
最新文章
- 在C#中使用XML指南之读取XML
- qgraphicsview鼠标移动图片_如何在中间鼠标的QGraphicsView中滚动QGraphicsScene?
- Android Gradle使用总结
- oracle dbra,资源供给:IO子系统之二
- 和平精英有电脑版吗_群雄逐鹿丨攀升电脑见证NEST和平精英王者诞生!
- 一篇不错的讲解Java异常的文章
- 编程学习记录11:Oracle数据库的一些基本操作1,创建用户,授权
- Nuget 管理报repositories.config 访问路径被拒绝 解决办法
- UIAlertView使用全解
- 可添加离线地图的手机GIS软件NextGIS(附安装包下载)
- 如何利用净推荐值(NPS)测量用户忠诚度?
- 董明珠为什么选择长沙?
- Haproxy集群配置
- 自然语言处理(NLP)的八个国际顶级会议!
- 三分钟带你玩转PDF文件签名
- 对硬盘操作的API介绍以及应用测试
- SyntaxError: invalid syntax都可能是是什么错!!!(持续更新)
- 为什么深度学习都在用python,你知道吗
- oracle安装使用
- ABAC权限模型的设计