在MFC中滑动条(CSliderCtrl)是个常用的控件,用法如下:

主要要方法有:

1、设置、取得滑动范围:
void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE );
void GetRange( int& nMin, int& nMax ) const;
2、设置、取得按下左右箭头滑动间隔:

int SetLineSize( int nSize );
int GetLineSize( ) const;
3、设置、取得按下PgUp、PgDown时滑动间隔:

int SetPageSize( int nSize );
int GetPageSize( ) const;
4、设置、取得滑块位置:

void SetPos( int nPos );
int GetPos( ) const;
5、设置滑动条刻度的频度:

void SetTicFreq( int nFreq ); //将Tick marks和Auto ticks两个属性同时选中才能看到刻度,在下拉框中可以选择刻度的显示位置

实例:

在对话框中放一个Slider控件,添加相应的Ctrl型变量为m_slider。在对话框初始化函数OnInitDialog()中添加:

BOOL CDlgSetup::OnInitDialog()
{
 CDialog::OnInitDialog();
 
 // TODO: Add extra initialization here

m_slider.SetRang(0,100);//设置滑动范围

m_slider.SetTicFreq(10);//每10个单位画一刻度
 return TRUE;  // return TRUE unless you set the focus to a control
               // EXCEPTION: OCX Property Pages should return FALSE
}

Slider控件本身并没有响应滑动的消息函数,但可以通过主窗体的OnHScroll()响应。在类向导中为对话框添加WM_HSCROLL消息,在响应函数中添加:

void CDlgSetup::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
 // TODO: Add your message handler code here and/or call default
 CSliderCtrl   *pSlidCtrl=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
 m_int=pSlidCtrlHue->GetPos();//取得当前位置值 
  CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

//m_int 即为当前滑块的值。

当有多个slider控件时,我的处理方法,自认为还是比较巧妙的

void CCameraParamDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
 // TODO: Add your message handler code here and/or call default
 UINT* pD;
 CSliderCtrl* pS = (CSliderCtrl*)pScrollBar;

if((void*)pScrollBar == (void*)&m_ctrH)
  pD = &m_H;
 else if((void*)pScrollBar == (void*)&m_ctrV)
  pD = &m_V;
 else if((void*)pScrollBar == (void*)&m_ctrNx)
  pD = &m_nX;
 else if((void*)pScrollBar == (void*)&m_ctrNy)
  pD = &m_nY;
 else if((void*)pScrollBar == (void*)&m_ctrNz)
  pD = &m_nZ;
 else if((void*)pScrollBar == (void*)&m_ctrUx)
  pD = &m_uX;
 else if((void*)pScrollBar == (void*)&m_ctrUy)
  pD = &m_uY;
 else if((void*)pScrollBar == (void*)&m_ctrUz)
  pD = &m_uZ;
 
 *pD = pS->GetPos();
 UpdateData(FALSE);
 CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

Slider控件的使用方法相关推荐

  1. 控件的呈现方法(Rendering)的内核

    Asp.net中所有的控件都是从System.Web.UI.Control类,在control类中定义了三个与呈现有关的方法,分别是Render方法,RenderChildren方法和RenderCo ...

  2. Jquery获得控件值的方法

    一 Jquery获得服务器控件值的方法 由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法: 服务器控件代码:<a ...

  3. Android 软键盘弹出时把布局顶上去,控件乱套解决方法

    Android 软键盘弹出时把布局顶上去,控件乱套解决方法 参考文章: (1)Android 软键盘弹出时把布局顶上去,控件乱套解决方法 (2)https://www.cnblogs.com/zhuj ...

  4. c语言windows 编程下silder控件,VB6 常用控件 滚动条ScorllBar和Slider控件

    滚动条(ScorllBar)和Slider控件通常用来附在窗体上以协助观察数据或确定位置,也可用来作为数据输入的工具. 滚动条(ScorllBar)和Slider控件都有水平和垂直两种,Slider控 ...

  5. 【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )

    文章目录 一. 代码生成控件 1. 创建设置项目 ( 1 ) 创建项目 ( ① 选择 Create a new Xcode project | ② 创建 Single View Application ...

  6. 一个查看UI5控件所有公有方法的小技巧

    一个很小的tip:比如我想把UI5表格控件里的每列设置成宽度根据显示的内容自适应,需要知道应该调用控件的哪个方法来实现. 一种办法当然是查SAP帮助文档,得知需要调用控件的公有方法setAutoSiz ...

  7. 继续聊WPF——Slider控件

    Slider控件,讲行通俗一点就是我们很常见的滑块,控件的外观上显示一系例刻度值,并存在一个可以被拖动的滑块,用户可以通过拖动滑块来控制控件的值. 如下图所示,是Windows系统的音量调节滑块. 下 ...

  8. 一个查看 SAP UI5 控件所有公有方法的小技巧

    一个很小的tip:比如我想把UI5表格控件里的每列设置成宽度根据显示的内容自适应,需要知道应该调用控件的哪个方法来实现. 一种办法当然是查SAP帮助文档,得知需要调用控件的公有方法setAutoSiz ...

  9. html asp textbox,ASP.NET中 TextBox 文本输入框控件的使用方法

    TextBox控件又称文本框控件,为用户提供输入文本的功能. 1.属性 TextBox控件的常用属性及说明如表1所示. 表1 TextBox控件常用属性及说明 属性 说明 AutoPostBack 获 ...

  10. android组件用法说明,Android第三方控件PhotoView使用方法详解

    Android第三方控件PhotoView使用方法详解 发布时间:2020-10-21 15:06:09 来源:脚本之家 阅读:74 作者:zhaihaohao1 PhotoView的简介: 这是一个 ...

最新文章

  1. html5网页怎么实现内容追加,纯js实现网页内容复制后自动追加自定义内容
  2. python实用性函数分享_分享|3个开源的 Python Shell
  3. [转]js实现简单的双向数据绑定
  4. 直播围观!百度大脑智能监控如何为安全生产保驾护航?
  5. Scanner和BufferedReader从控制台读取输入数据
  6. 自动驾驶算法-滤波器系列(一)——详解卡尔曼滤波原理
  7. (17)机器学习_集成学习
  8. Spring源码下载并导入Idea
  9. ffmpeg 下载网上m3u8的视频文件
  10. word单页(或中间几页)横向显示
  11. HTML移动端 实现刻度尺效果
  12. 细谈永恒之蓝,实现复现
  13. 如何快速删除微博下拉词
  14. 用java编写图形用户界面_Java编写图形用户界面程序
  15. ibm服务器 产品型号对应表,IBM服务器配件型号及编号列表
  16. 小程序设置边框border
  17. java 有指针吗_java中到底有没有指针(转)
  18. 3---条形图(matplotlib)
  19. 11月份Aidlux智慧交通AI安全实战--(目标检测+安全算法)
  20. mysql做十亿条数据查询_数据库优化:mysql数据库单机数十亿数据查询设计

热门文章

  1. 内容提供者和内容观察者
  2. Unity项目中的资源管理
  3. [转]在ubuntu下安装sublime text
  4. 自然语言处理理论与实战
  5. Anaconda tensorflow 安装笔记
  6. 一个项目的404错误处理页面
  7. Android:制作Update.zip升级包 【转】
  8. 《C#高效编程》读书笔记11-理解短小方法的优势
  9. 如何成为一名好的程序员的一些个人经验
  10. [Android] [Java] Process 创建+控制+分析 经验浅谈