1.创建控件

HWND hScrollBar = ::CreateWindow(

WC_SCROLLBAR,                           //控件类名

NULL,                                   //窗口标题文本

WS_VISIBLE | WS_CHILD | SBS_TOPALIGN,   //控件风格样式

10, 100, 200, 40,                       //控件显示位置坐标

m_hWnd,                                 //父窗口句柄

(HMENU)IDC_SCROLLBAR1,                  //控件ID号

m_hInstance,                            //程序实例句柄

0);                                     //附加数据

2.设置最小值和最大值(SBM_SETRANGE)

SendMessage(hScrollBar, SBM_SETRANGE, 0, 100);

wParam:  为最小值

lParam:     为最大值

3.设置滑块的位置(SBM_SETPOS)

SendMessage(hScrollBar, SBM_SETPOS, 1, TRUE);

wParam:  为要设定的位置

lParam:  TRUE为是否刷新窗口,FALSE为不刷新

4.获得滑块当前位置(SBM_GETPOS)

int pos = SendMessage(hCtrl, SBM_GETPOS, 0, 0);

5.通知消息

水平通知消息(WM_HSCROLL)

垂直通知消息(WM_VSCROLL)

水平通知消息示例:

LRESULT MyDialog::OnhScroll(WPARAM wParam, LPARAM lParam)

{

int nSbCode = LOWORD(wParam);  //获得控件通知消息码

HWND hCtrl = (HWND)lParam;    //控件句柄

/*WORD lPos = HIWORD(wParam);*/只有拖动滑块时才有滑块当前位置信息

int pos = SendMessage(hCtrl, SBM_GETPOS, 0, 0);  //获得当前滑块位置

switch (nSbCode)

{

case SB_LINELEFT:  //点击左边按钮消息

pos-=5;

break;

case SB_LINERIGHT:  //点击右边按钮消息

pos+=5;

break;

case SB_PAGELEFT: //点击滑块左边滚动条空白翻页消息

pos -= 20;

break;

case SB_PAGERIGHT:  //点击滑块右边空白处为翻页消息

pos += 20;

break;

/*case SB_THUMBTRACK:  //拖动滑块时消息

SendMessage(hCtrl, SBM_SETPOS, lPos, 1);

return true;*/

case SB_THUMBPOSITION:  //拖动滑块放开消息

pos = HIWORD(wParam);

break;

}

SendMessage(hCtrl, SBM_SETPOS, pos, 1); //设置当前位置=pos,并重绘控件

CString str;

str.Format(TEXT("%d"), pos);

SetDlgItemText(IDC_STATIC1, str);

return LRESULT();

}

 

Win32 滚动条控件的更多相关文章

  1. MFC编程入门之二十六(常用控件:滚动条控件ScrollBar)

    回顾上一节,讲的是组合框控件Combo Box的使用.本节详解滚动条控件Scroll Bar的相关内容. 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.前面讲的列表框和组合 ...

  2. 自己开发基于c#的垂直滚动条控件

    由于Visual Studio工具箱中自带滚动条控件外观太老,而且没有颜色外观属性可设置. 所以自己就试着开发一个垂直的滚动条,它可以用来控制TextBox的滚动. 由于代码比较多,源文件已经打包到网 ...

  3. VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)

    回顾上一节,鸡啄米讲的是组合框控件Combo Box的使用.本节详解滚动条控件Scroll Bar的相关内容. 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.前面讲的列表框 ...

  4. VS2010-MFC(常用控件:滚动条控件Scroll Bar)

    转自:http://www.jizhuomi.com/software/191.html 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.前面讲的列表框和组合框设置了相应属性 ...

  5. javascript控件开发之滚动条控件

    首先,基于行前几篇开发的的框架,我们在目录 component\ui\下添加文件 com.ui.scrollBar.js, 在文件中定义com.ui.scrollBar类,继承com.ui.windo ...

  6. PyQt5复杂控件(树控件、选项卡控件(滚动条控件、多文档控件、停靠控件)

    1.树控件的基本使用方法QTreeWidget'''QTreeWidget树控件的使用方法添加图标,添加表格,添加复选框等'''from PyQt5.QtWidgets import *from Py ...

  7. win32创建控件的一些问题

    在我们使用CreateWindow();像一般控件建Windows扩展控件的时候我们会发现控件没有创建成功 这是因为我们没有对Windows扩展控件库进行初始化,这要我们使用InitCommonCon ...

  8. tkinter中text文本与scroll滚动条控件(五)

    text与scroll控件 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("30 ...

  9. 【转】Win32 创建控件风格不是Win XP解决方案

    有时候我有在用Win32 API来向窗体上添加控件时,通过CreateWindow或CreateWindowEx创建出来的控件的风格不像XP风格,而是像Windows 2000的风格,界面很难看.注意 ...

  10. win32通用控件

    1.标准控件 可以在win32窗口程序中添加资源脚本来给程序添加标准控件: 具体操作为:新建资源脚本    ->在.rc文件中添加控件    ->给控件绑定事件:   常用的标准控件:   ...

随机推荐

  1. unity中Shader实现地形中根据实际高度绘制等高线,剖切功能,颜色渐变等功能

    问题背景 在做地形模块时,需要根据实际地形高度画出世界相应的等高线,以及根据高度做颜色渐变,以及剖切功能. 解决方法 通过像素点在世界坐标系下的真实高度值来判断计算绘制等高线,剖切功能以及颜色渐变均有 ...

  2. 什么是Selenium Grid?如何搭建Selenium Grid?

    标签(空格分隔): 测试架构 什么是测试基础架构? 测试基础架构指的是,执行测试的过程中用到的所有基础硬件设施以及相关的软件设施.因此,我们也把测试基础架构称之为广义的测试执行环境.通常来讲,测试基础 ...

  3. 坚果云与floccus实现Chrome书签国内跨设备、跨平台同步

      本文介绍基于floccus插件与坚果云协同使用的方法,对浏览器的书签进行实时在线同步的操作.   在工作与学习中,我们时常希望在不同浏览器之间实现书签的同步:而一些传统的浏览器书签同步方案,或多或 ...

  4. documen.write 和 innerHTML 的区别?

    document.write只能重绘整个页面,innerHTML可以重绘页面的一部分. 1. ducument.write使用举例html文档: <!doctype html> <h ...

  5. SpirngBoot整合MybatisPlus 附源码

    项目搭建 目录结构 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns ...

  6. 大一新生的作业(洛谷P1150,1035,1075)

    本帖背景:此帖讲解大一新生团队作业 截止日期10-31 17:09 P1150(Peter的烟) 算法简介 本题主要考察的是模拟算法 模拟算法一般考察一些比较基础的题目,它将生活中的实例融合到了编程题 ...

  7. WPF/C#:在WPF中如何实现依赖注入

    前言 本文通过 WPF Gallery 这个项目学习依赖注入的相关概念与如何在WPF中进行依赖注入. 什么是依赖注入 依赖注入(Dependency Injection,简称DI)是一种设计模式,用于 ...

  8. C#多窗口切换的实现

    本文关键字: 多窗口切换 label splitContainer 窗口背景颜色设置 字体设置 窗口布局 按钮事件 按钮 新建项目: 开发MainForm: MainForm先添加1个splitCon ...

  9. Tiny RDM 刚上线就收获一众好评的Redis桌面开源客户端!值得拥有!

    相信对Redis有频繁操作需求的用户,大部分会选择一个顺手的图形化界面工具来代替手动命令行操作以提高效率.Tiny RDM作为一款现代化轻量级的跨平台Redis桌面客户端,为用户提供了便捷高效的Red ...

  10. 计算机网络中的检验和(checksum)(包括计算文件的检验和附有c++代码)

    介绍: 检验和(checksum),在数据处理和数据通信领域中,用于校验目的地一组数据项的和.它通常是以十六进制为数制表示的形式.如果校验和的数值超过十六进制的FF,也就是255. 就要求其补码作为校 ...