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的使用相关推荐

  1. MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

    最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序 ...

  2. mfc入门基础(六)创建模态对话框与非模态对话框

    参考博客: VS2010/MFC编程入门之十一(对话框:模态对话框及其弹出过程)-软件开发-鸡啄米 一.创建模态对话框 1.接着上节中的test02的例子来讲,找到test02.cpp文件,找到函数I ...

  3. iOS开发UI基础—手写控件,frame,center和bounds属性

    iOS开发UI基础-手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...

  4. MFC设置对话框背景色及控件颜色

    MFC设置对话框背景色及控件颜色 一.使用背景图片更改对话框背景色 在对话框源文件void CxxDlg::OnPaint()函数中 if (IsIconic()) { (这里省略) } else { ...

  5. MFC中使用TAB Control控件

    2019独角兽企业重金招聘Python工程师标准>>> MFC中使用TAB Control控件 MFC中使用TAB Control控件(转) 假如我现在有个SDI程序,View是Fo ...

  6. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  7. vue实战入门基础篇二:从零开始仿门户网站实例-开发框架搭建

    上一篇:vue实战入门基础篇一:从零开始仿门户网站实例-前期准备工作 vue实战入门基础篇二:从零开始仿门户网-2022-2-23 21:00:27 一.目录 第一篇:前期准备工作 第二篇:开发框架搭 ...

  8. Oracle入门(十二)之SQL的DDL

    一.数据类型 Character 数据类型 Number 数据类型 Date 数据类型 Raw 和 Long Raw 数据类型 LOB 数据类型 注:Oracle数据类型详解 二.表 (1)创建表 c ...

  9. 用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果(转)

    用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果(转) 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://hcq11.blogbus.com/logs/5 ...

  10. 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) ....

    可视化webpart基础开发--TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 作者:miragesky2049 原文地址:http://blog.csdn.net/mirages ...

最新文章

  1. 在C#中使用XML指南之读取XML
  2. qgraphicsview鼠标移动图片_如何在中间鼠标的QGraphicsView中滚动QGraphicsScene?
  3. Android Gradle使用总结
  4. oracle dbra,资源供给:IO子系统之二
  5. 和平精英有电脑版吗_群雄逐鹿丨攀升电脑见证NEST和平精英王者诞生!
  6. 一篇不错的讲解Java异常的文章
  7. 编程学习记录11:Oracle数据库的一些基本操作1,创建用户,授权
  8. Nuget 管理报repositories.config 访问路径被拒绝 解决办法
  9. UIAlertView使用全解
  10. 可添加离线地图的手机GIS软件NextGIS(附安装包下载)
  11. 如何利用净推荐值(NPS)测量用户忠诚度?
  12. 董明珠为什么选择长沙?
  13. Haproxy集群配置
  14. 自然语言处理(NLP)的八个国际顶级会议!
  15. 三分钟带你玩转PDF文件签名
  16. 对硬盘操作的API介绍以及应用测试
  17. SyntaxError: invalid syntax都可能是是什么错!!!(持续更新)
  18. 为什么深度学习都在用python,你知道吗
  19. oracle安装使用
  20. ABAC权限模型的设计

热门文章

  1. 404 html代码,不懂代码,如何制作漂亮的404页面【新手简易教程】
  2. FireMonkey开发: 图片缩放
  3. 什么是绩优股、什么是垃圾股、蓝筹股、红筹股
  4. VUE3实现对话框窗口拖动
  5. 各种数据集总结 图像数据集 语音数据集
  6. AD 2020 入门教程
  7. ADB入门(四)-连接异常处理篇
  8. maven打包的命令
  9. 湖南计算机考试模拟程序,湖南省计算机等级考试模拟 试卷5
  10. 基于北斗的储罐沉降监测系统方案