【转】Win32 Slider Control的用法

 

2.1 获得控件的窗口句柄。

slider control也是一个窗口,是对话框的子窗口,因此,要用GetDlgItem来实现:

backlight_wnd = GetDlgItem(hDlg, IDC_SLIDER_BACKLIGHT);  //注意下面示例中蓝色标出的区别

2.2 设置slider control的区间,是给slider control发TBM_SETRANGE消息,比如我设置0到100就是:

SendMessage(backlight_wnd,TBM_SETRANGE, (WPARAM)1,(LPARAM)MAKELONG(0,100));

2.3 设置滑块的初始位置是发送TBM_SETPOS消息来实现的:

   SendMessage(backlight_wnd,TBM_SETPOS, (WPARAM)1,(LPARAM)BacklightPercentage);
2.4 slider control和用户的交互,则是通过WM_HSCROLL消息来实现的,需要在WM_HSCROLL的响应函数里面发送TBM_GETPOS消息得到当前滑块的位置:

BacklightPercentage = (unsigned char)SendMessage(backlight_wnd,TBM_GETPOS,0,0);

2.5 旁边的一个当前刻度的数字的说明,需要先设定一个Static text文本控件,然后动态给该控件发送WM_SETTEXT消息来实现动态的更新数字:

SendMessage(GetDlgItem(hDlg, IDC_STATIC_BACKLIGHT_VALUE), WM_SETTEXT, 0, LPARAM(szBacklightPercentage));

最后面的那个参数,szBacklightPercentage是一个字符串。

 

 

 

INT_PTR WINAPI DlgProcTouMingSet(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {PAINTSTRUCT ps;HDC hdcAbout;int EscKeyID=1000;int ReturnID=1001;HWND backlight_wnd;switch (uMsg){case WM_INITDIALOG:{RegisterHotKey(hwnd,EscKeyID,0,VK_ESCAPE);RegisterHotKey(hwnd,ReturnID,0,VK_RETURN);backlight_wnd = GetDlgItem(hwnd,IDC_SLIDER_TouMing);//2.2 设置slider control的区间,是给slider control发TBM_SETRANGE消息,比如我设置0到100就是:SendMessage(backlight_wnd,TBM_SETRANGE, (WPARAM)1,(LPARAM)MAKELONG(15,255));int TouMingChuShi= GetPrivateProfileInt(_T("SkinChoose"),_T("TouMing"),150,defaultFullFullPath);SendMessage(backlight_wnd,TBM_SETPOS, (WPARAM)1,TouMingChuShi);  //读取初始透明度}break;case WM_HSCROLL:{int nScrollCode = (int) LOWORD(wParam);  // scroll bar value  //int nPos = (int) HIWORD(wParam);   // scroll box position  HWND hwndScrollBar = (HWND) lParam;       // handle to scroll bar   lParam一般表示窗口句柄 		
int nPos=200;nPos=SendMessage(hwndScrollBar,TBM_GETPOS,0,0);	TCHAR TouMing[10];switch(nScrollCode){case SB_THUMBTRACK:   //用户拖动滚动框。此消息被重复发送,直到用户释放鼠标按钮。{nPos=SendMessage(hwndScrollBar,TBM_GETPOS,0,0);		_itow_s( nPos, TouMing, 10, 10);WritePrivateProfileString(_T("SkinChoose"),_T("TouMing"),TouMing,defaultFullFullPath);SetLayeredWindowAttributes(hwnd1,RGB(0,0,0),              //表示与此颜色相同的颜色将会透明    nPos,				     //表示透明度0是全透明,255是全显示LWA_ALPHA|LWA_COLORKEY   //LWA_ALPHA|LWA_COLORKEY:这样crKey的地方将变为全透明,而其它地方根据bAlpha参数确定透明度。); }break;case SB_ENDSCROLL:{nPos=SendMessage(hwndScrollBar,TBM_GETPOS,0,0);WritePrivateProfileString(_T("SkinChoose"),_T("Skin"),_T("1"),defaultFullFullPath);SetLayeredWindowAttributes(hwnd1,RGB(0,0,0),              //表示与此颜色相同的颜色将会透明    nPos,				     //表示透明度0是全透明,255是全显示LWA_ALPHA|LWA_COLORKEY   //LWA_ALPHA|LWA_COLORKEY:这样crKey的地方将变为全透明,而其它地方根据bAlpha参数确定透明度。); break;}}}break; 	case WM_HOTKEY:{switch (wParam){case 1000:{EndDialog(hwnd, LOWORD(wParam));UnregisterHotKey(hwnd,1000);}break;case 1001:{EndDialog(hwnd, LOWORD(wParam));UnregisterHotKey(hwnd,1001);}break;}}break;case WM_LBUTTONDOWN:{EndDialog(hwnd, LOWORD(wParam));return (INT_PTR)TRUE;}break;case WM_COMMAND:{UINT wmId = LOWORD(wParam);UINT wmEvent = HIWORD(wParam);switch (wmId){case IDOK:   //获取生日时间并赋值给全局变量case IDCANCEL:{EndDialog(hwnd, LOWORD(wParam));}return (INT_PTR)TRUE;}}}return (INT_PTR)FALSE;
}

 

 

 

转载于:https://my.oschina.net/ypimgt/blog/81390

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wince编译

在WinCE下面,创建工程,然后编译是需要花很长时间的。当我们第一编译完工程以后,如果需要改我们的驱动或者BSP,我们是不需要重新编译整个工程的:1. 如果更改了driver,以WinCE6.0为例,我们可以在菜…

php 变量文件间传递,同一文件的两个JS函数之间如何传变量?

满意答案ed_ch2013.11.06采纳率:44% 等级:12已帮助:8801人定义成全局变量就可以了var style_key;function change_mystyle(my){style_keymy.options[my.selectedIndex].value;if(style_key 114la){document.getElementById(shoostyleicon…

获取 Web 设计的免费资源

Web 开发人员可以找到很多免费资源,尽管其中一些资源会比另外一些资源更加自由。如果您正在设计网站或 Web 应用程序,那么不管是静态的还是所有可以想到的动态 Ajax 内容,都能找到减轻您的劳动强度并为网站增色的资源。本文从免费图标到 Web …

设计模式C++实现(1)——工厂模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书&#xff0…

【转】关于CreateWindow的HINSTANCE参数?

学习Windows程序设计时,看见CreateWindows中有参数HINSTANCE,但不知道其用途,于是上网搜得两资料,并且,得出结果是,用于区分不同的应用实例。 What is the HINSTANCE passed to CreateWindow and RegisterC…

java对象间的转型,详细讲述Java中的对象转型

向上转型:子类对象转为父类,父类可以是接口。公式:Father f new Son();Father是父类或接口,son是子类。向下转型:父类对象转为子类。公式:Son s (Son)f;我们将形参设为父类Animal类型,当执行t…

给C盘减减肥,让你电脑飞一般速度!

当你买了台新电脑时,觉得性能,速度,你都比较满意,但是随着时间推移,你觉得你C盘空间越来越小,速度也降下了,那我们该怎么办呢?对于菜鸟来说,有一点你必须注意&#xff1a…

C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)

今天开始这个系列之前,心里有些恐慌,毕竟园子里的高手关于设计模式的经典文章很多很多,特别是大侠李会军、吕震宇 老师的文章更是堪称经典。他们的文笔如行云流水,例子活泼生动,讲解深入浅出。好在他们都是用C#描述&am…

【转】Windows消息传递机制详解

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka Windows是一个消息(Message)驱动系统。Windows的消息提供了应用程序之间、应用程序与Windows系统之间进行通信的手段。应用程序想要实现的功能由消息来触发,并且靠对消…

matlab中邮递员问题实例,中国邮递员问题matlab

中国邮递员问题的EXCEL求... 1页 免费 对中国邮递员问题的数理... 4页 1下载券 中国邮递员问题matlab 6页 1下载券 喜欢...中国邮递员问题摘要:欧拉图起源于哥尼斯堡七桥问题,通过图中所有边一次且仅一次行遍...中国邮递员问题 (Chinese Postman Problem) 主要内容 七桥问题与一…

Response.Redirect(),Server.Transfer(),Server.Execute()的区别

Response.Redirect(),Server.Transfer(),Server.Execute()的区别 1、Response.Redirect(): Response.Redirect方法导致浏览器链接到一个指定的URL。当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了状态代 码302(表示目…

设计模式C++实现(2)——单例模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书&#xff0…

php聊天室技术,PHP聊天室技术

PHP聊天室技术推荐查看本文HTML版本1.前言上网聊天是时下最流行的交友方式。各大网站推出的聊天室都各具特色。聊天室主要分为WebChat、BBSChat两种。BBSChat是基于Telnet的Tcp协议,是BBS的附设功能,需要客户端Telnet程序。WebChat则采用…

【转】深入理解Windows消息机制

转自:https://blog.csdn.net/liulianglin/article/details/14449577 今天我们来学一学Windows消息机制,我们知道在传统的C语音程序中,当我们需要打开一个文件时,我们可以调用fopen()函数,这个函数最后又会调用操作系统…

System.Drawing.Color.FromArgb(144,238,255);

if(dg.Items[i].Cells[iRow].Text "没完成") { dg.Items[i].BackColorSystem.Drawing.Color.FromArgb(144,238,255); } if(dg.Items[i].Cells[iRow].Text "已完成") { dg.Items[i].BackColorSystem.Drawing.Color.LightGreen;…

设计模式C++实现(3)——建造者模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书&#xff0…

php tp 模板assign,thinkphp中怎么让assign在另一个模板里使用呢?

比如现在我有a.html和名字为b的控制器,现在我在b控制器里assing(‘b’,$b),那么请问在a.html中怎么调用b控制器中的assign呢?回复讨论(解决方案)代码是这样的Controller:public function a(){$this->display();}public function b(){if(IS_AJAX){$imageD(‘Image’);$b$ima…

【转】详解Windows消息分类以及WM_COMMAND与WM_NOTIFY的区别,以及模拟发送控件通知消息

转自:http://blog.sina.com.cn/s/blog_4b3c1f950100nten.html Windows消息的分类 1. 标准消息(队列消息) 除WM_COMMAND之外,所有以WM_开头的消息都是标准消息,如WM_MOUSEMOVE、WM_LBUTTONUP、WM_KEYDOWN、WM_CHAR。…

宽字符串忽略大小写比较的实现(原)

宽字符串忽略大小写比较的实现(原) 孙文涛 2008-07-24 在Mac机器平台上没有wcsicmp 或 wcscasecmp之类的函数实现对宽字符忽略大小写的比较,所以实现了好几种方法。 一个自然的思路是: (1) wcscpy 原字符串到tmp字符串; (2) tolower tmp字符串; (3) 然后调用仅存的w…

有关JAVA考试中数据库的题,javaee期末考试题库,用javaEE编写一个题库系统,要怎么做...

javaEE数据库简单问题。你插入2113数据库的时候是把5261它封装为一4102个对象插入的吗?1653如果封装为一个User对象版的权话(User对象有ID和LEVEL两个属性)ResultSet rs ps.executeQuery();User user new User();if(rs.hasNext()){user rs.next();}关于javaee 中j…