在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 );

实例:

在对话框中放一个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 即为当前滑块的值。

当下列情况发生时,SliderCtrl的父窗口都会收到 WM_HSCROLL(水平方向控件) 或者 WM_VSCROLL(竖直方向控件) 通知消息。 

<1>. 用鼠标点击滑杆,点击一次收到一条通知消息. 

<2>. 按下鼠标拖动滑杆,拖动时会不断收到通知消息. 

<3>. 按下方向键,按一次,收到一条通知消息. 

<4>. 按下 PageUp , PageDown 键,同上. 

<5>. 按下 Home, End 键,同上. 

所以实现你所要的功能只需要在父窗口里处理 WM_HSCROLL 或者 WM_VSCROLL消息即可。 

假设你的滑杆,编辑框控件ID分别为 IDC_SLIDER1, IDC_EDIT1. 

void CScrollBar_TestDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 



if( pScrollBar->GetDlgCtrlID() == IDC_SLIDER1 ) 



// nPos就是此时滑杆的位置,显示到 CEdit 就可以了 

char temp[30]; 

sprintf_s(temp, 30, "%d", nPos); 

//或者 获取 Slider 当前位置 

sprintf_s(temp, 30, "%d", ((CSliderCtrl*)pScrollBar)->GetPos()); 

GetDlgItem(IDC_EDIT1)->SetWindowText(temp); 



}

【VS开发】MFC滑动条 CSliderCtrl的更多相关文章

  1. MFC 滑动条的重绘

    MFC自带的滑动条的样子是这样的. 比较难看,所以需要重绘下,重绘后的样子是这样的. 代码如下: CustomSliderCtr.h #pragma once // CCustomSliderCtr ...

  2. 利用OpenCV和MFC对话框建设一个有滑动条控制的播放器--转

    (一)问题的提出: OpenCV有一个很简单的播放视频文件并加载滑动条的程序,但是如何用MFC对话框来创建一个有滑动条控制的播放器呢,网络上四处搜索都没有代码可以参考,下的都是些骗子链接文件,很过分, ...

  3. Android开发手记(11) 滑动条SeekBar

    安卓滑动条的操作特别简单,通过getProgress()可以获得SeekBar的位置,通过setProgress(int progress)可以设置SeekBar的位置.要想动态获取用户对SeekBa ...

  4. IOS开发-UI学习-UISlider(滑动条)的使用

    滑动条即UISlider,是我们常见的软件中设置音量,亮度等的滑条,初始化及基本设置如下: // 新建滑动条 UISlider *slider = [[UISlider alloc]initWithF ...

  5. VC++ 中滑动条(slider控件)使用 [转+补充]

    滑动控件slider是Windows中最常用的控件之一.一般而言它是由一个滑动条,一个滑块和可选的刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值.通常,在滑动控件附近一定有标签控件或编辑框控 ...

  6. IE10和IE11中滑动条遮挡页面问题

    今天在开发的过程中前端项目,在小设备上会出现滑动条,这本没什么,在其他浏览器上都很正常,但是在IE10和IE11上出现了问题,发现侧边滑动条挡住了一部分页面的内容,因为侧边有要操作的按钮,这就是一个很 ...

  7. 使用原生JS+CSS或HTML5实现简单的进度条和滑动条效果(精问)

    使用原生JS+CSS或HTML5实现简单的进度条和滑动条效果(精问) 一.总结 一句话总结:进度条动画效果用animation,自动效果用setIntelval 二.使用原生JS+CSS或HTML5实 ...

  8. 第15.44节、PyQt输入部件:QAbstractSlider派生类QScrollBar滚动条、QSlider滑动条、QDial刻度盘功能详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 Designer中的输入部件Horizo ...

  9. 第三十七章、PyQt输入部件:QAbstractSlider派生类QScrollBar滚动条、QSlider滑动条、QDial刻度盘功能介绍

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 Designer中的输入部件Horizo ...

随机推荐

  1. Thinkphp下实现D函数用于实例化Model格式

    * D函数用于实例化Model 格式 项目://分组/模块 * @param string $name Model资源地址 * @param string $layer 业务层名称 * @return ...

  2. [转载]Linux进程调度原理

    [转载]Linux进程调度原理 Linux进程调度原理 Linux进程调度的目标 1.高效性:高效意味着在相同的时间下要完成更多的任务.调度程序会被频繁的执行,所以调度程序要尽可能的高效: 2.加强交 ...

  3. docker-compose部署gitlab

    一.安装docker-compose步骤可参考本博客其他文章 二.这里的ssl证书是使用letsencrypt生成,可参考文档https://my.oschina.net/u/3042999/blog ...

  4. django-导入应用包的搜索路径

    创建应用包 在 settings.py注册和配置urls.py中要按顺序导入包名和应用名 settings.py INSTALLED_APPS = ( 'django.contrib.admin', ...

  5. python的程序运行时间

    import time start =time.clock() sum= ,): sum=sum+i print(sum ) end = time.clock() print('Running tim ...

  6. LeetCode 787. Cheapest Flights Within K Stops

    原题链接在这里:https://leetcode.com/problems/cheapest-flights-within-k-stops/ 题目: There are n cities connec ...

  7. 为啥用DTO

    0.部分参数对于开发前端的人来说是无意义的,因为传递也没有效果.所以不应该暴露给前端使用. 1.依据现有的类代码,即可方便的构造出DTO对象,而无需重新进行分析. 2.减少请求次数,大大提高效率. 3 ...

  8. BZOJ 4890: [Tjoi2017]城市 树形dp

    标签:树形dp,枚举,树的直径 一上来看到这个题就慌了,只想到了 $O(n^3)$ 的做法. 碰到这种题时要一步一步冷静地去分析,观察数据范围. 首先,$n\leqslant 5000$,所以可以先 ...

  9. learning java FileReader

    import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import ...

  10. THUPC&CTS 2019 游记

    day ? 去THU报了个到. day? THUPC比赛日,三个人都没有智商,各种签到题不会做,被各路神仙吊着打.G题还猜了个假结论,做了好久都不对.最后顺利打铁了. 还顺便去看一下THUAC. da ...