当前位置: 首页 > news >正文

Windows图形界面(GUI)-MFC-C/C++ - CSliderCtrl

  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

CSliderCtrl

创建滑动条

设置滑动条属性

成员函数

消息处理

注意事项

示例代码


CSliderCtrl

创建滑动条

  • 在对话框编辑器中,从工具箱中拖拽一个Slider Control到对话框资源。在类向导中为Slider Control添加变量,类型为CSliderCtrl
设置滑动条属性

  • 在对话框的属性窗口中,可以设置Slider Control的各种属性,如范围(Range)、位置(Position)、刻度(Tics)等。

  • 范围:滑动条的最小值和最大值。

  • 位置:滑块的当前位置。

  • 刻度:在滑动条上显示的刻度标记。

成员函数

  • SetRange(int nLower, int nUpper):设置滑动条的范围。

  • SetRangeMax(int nMax):设置滑动条的最大值。

  • SetRangeMin(int nMin):设置滑动条的最小值。

  • SetPos(int nPos):设置滑动条的位置。

  • GetPos():获取滑动条的位置。

  • SetTicFreq(int nFreq):设置刻度频率。

  • SetSelection(int nMin, int nMax):设置滑动条的选择范围。

消息处理

  • 滑动条控件可以发送多种消息,如NM_CUSTOMDRAWNM_SLIDERPOSCHANGED。在对话框类中,可以通过消息映射来处理这些消息。
注意事项

  • 确保在创建滑动条之前,父窗口已经创建。

  • 滑动条的父窗口应该是对话框或框架窗口。

  • 滑动条的ID应该在对话框类的消息映射中正确映射。

  • 处理滑动条消息时,确保消息处理函数与消息映射中的ON_NOTIFY宏匹配。

示例代码
void CMainDlg::OnBnClickedButton25()
{CSliderCtrl* pSlider = (CSliderCtrl*)GetDlgItem(IDC_SLIDERMAIN);pSlider->SetRange(0, 100);pSlider->SetPos(20);}void CMainDlg::OnNMCustomdrawSlider2(NMHDR* pNMHDR, LRESULT* pResult)
{CSliderCtrl* pSlider = (CSliderCtrl*)GetDlgItem(IDC_SLIDERMAIN);CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC_SLIDER);int nPos = pSlider->GetPos();CString strPos;strPos.Format(_T("%d"), nPos);pStatic->SetWindowText(strPos);LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);// TODO: 在此添加控件通知处理程序代码*pResult = 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 沪深300股指期货如何操作套期保值?
  • small bird
  • SpringBoot获取resources文件夹下文件并且实现下载
  • 视频懒加载
  • 深入理解 Go 的 init 函数:以 GORM 数据库连接为例
  • [SWPUCTF 2021 新生赛]include
  • Arrays类、Random类和包装类(8大基本数据类型)的用法
  • 加密软件有哪些常见的安全特性
  • Linux驱动开发—设备树分析:GPIO,中断,时钟信息,CPU信息
  • Postgresql数据库中通过函数实现将不确定列的数据插入到表中
  • c++中std::endl 和“\n“ 这两个换行符有什么区别
  • uniapp——列表图片加载太多且空间占用太大的处理方法(降低清晰度)
  • git的基本操作和原理
  • MoE-LLaVA: Mixture of Experts for Large Vision-Language Models
  • Elastic Observability 8.15:AI 助手、OTel 和日志质量增强功能
  • 【译】JS基础算法脚本:字符串结尾
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Brief introduction of how to 'Call, Apply and Bind'
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • java2019面试题北京
  • JavaScript新鲜事·第5期
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Laravel 实践之路: 数据库迁移与数据填充
  • Linux快速复制或删除大量小文件
  • mongo索引构建
  • vue2.0项目引入element-ui
  • 编写符合Python风格的对象
  • 京东美团研发面经
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 漂亮刷新控件-iOS
  • 前言-如何学习区块链
  • 数据仓库的几种建模方法
  • 通过npm或yarn自动生成vue组件
  • 我与Jetbrains的这些年
  • 正则学习笔记
  • ​Linux·i2c驱动架构​
  • !!java web学习笔记(一到五)
  • !$boo在php中什么意思,php前戏
  • # 安徽锐锋科技IDMS系统简介
  • #NOIP 2014# day.1 T2 联合权值
  • #传输# #传输数据判断#
  • $(selector).each()和$.each()的区别
  • (poj1.3.2)1791(构造法模拟)
  • (Python第六天)文件处理
  • (待修改)PyG安装步骤
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (一)Linux+Windows下安装ffmpeg
  • (转)iOS字体
  • (转)Scala的“=”符号简介
  • ***利用Ms05002溢出找“肉鸡
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core 管理用户机密
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .net refrector