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

【转】Win32 Slider Control的用法相关推荐

  1. control的用法及短语_有关control的短语

    1. control短语,句子 to have control of or over 控制 to take control of 管理 in control of 控制着 to be/get out ...

  2. control的用法及短语_九上U5(control)微课详解与精练

    ◆◆视频讲解◆◆ (译林牛津 | 九上U5重点词汇 control) ◆◆例题解析◆◆1. 单选题: The business is said to be          of a director ...

  3. control的用法及短语_out of control用法及例句

    out of control短语的意思是"失去控制;不受控制".如果Out-of-control 三个单词之间用横杠连接,做形容词,意思是失控的. out of control用法 ...

  4. mfc中picture control的用法_可能是最被误用的 HTTP 响应头之一 Cache-Control: must-revalidate

    在 HTTP 客户端(浏览器或者缓存服务器)上,如果某个 URL 对应的缓存过期了,客户端会再次向该 URL 发送一个条件请求(带有If-Modified-Since/If-None-Match请求头 ...

  5. C# 调Win32 API SendMessage简单用法及wMsg常量

    函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.该函数是应用程序和应用程序之间进行消息传递的主要手段之一.     函数原型:LRESU ...

  6. Control.Invoke用法注意事项

    control.invoke主要用于在非Ui线程更新控件,这里要注意的是,当ui线程阻塞时,在非Ui线程中的control.invoke也会阻塞,control.invoke会一直等到Ui线程有空闲了 ...

  7. Win32消息集合----方便查阅

    // #include "AFXPRIV.H"//消息值的定义来源 #include "Dde.h"//DDE消息值的定义来源 #include "C ...

  8. VC常用控件用法(转载)

    1.表头控制 Header Control 2.图像列表控制 Image List 3.列表控制和视 List Control&List View 4.树控制和视 Tree Control&a ...

  9. MFC中滚动条slider和编辑框edit的联动

    想在MFC中实现滚动条slider和编辑框edit的联动(改变滚动条,显示数字在编辑框),同时想要添加两个滚动条,分别控制亮度和对比度.参考了几个博客在VS2017中跑不出来.自己写了一个能运行的版本 ...

最新文章

  1. ios pusher使用_如何使用JavaScript和Pusher构建实时评论功能
  2. Jetson Xavier(Ubuntu18.04)安装固态硬盘并挂载到/home区下
  3. DIV水平方向居中的几种方法
  4. datatable删除一行数据
  5. linux 手动睡眠
  6. bootstrap 单选按钮点击change事件 只触发一次_微信支付新增“确认”按钮,付错钱将成为历史?...
  7. URL转微信可识别的二维码
  8. cannot load php5,Cannot load php5apache2_4.dll into server解决办法
  9. C# struct 装箱拆箱例子
  10. 我往手里面植入了一枚芯片,但并没有获得超能力
  11. Q1:spring-boot中Controller路径无法被访问的问题
  12. python课后题答案第一章_Python程序设计课后习题答案-第一单元
  13. aehyok.com的成长之路一——开篇
  14. jdbc存储过程mysql_使用JDBC操作存储过程
  15. 字节数与字符数mysql_mysql 数值与字符类型 长度梳理
  16. hash ruby 定义 嵌套_Ruby:合并嵌套哈希
  17. web developer tips (56):手动更新JScript的智能感知
  18. 免费的Google翻译API接口
  19. AvalonDock使用(1)-基本用法
  20. Ant Design of Vue中a-form-model多行表单对齐和验证

热门文章

  1. 梯度算法的matlab程序,基于MATLAB的梯度法源代码
  2. 【Makefile由浅入深完全学习记录3】伪目标的引入
  3. web----epoll实现原理
  4. 【vue开发】 父组件传值给子组件时 ,watch props 监听不到解决方案
  5. noi题库(noi.openjudge.cn) 1.8编程基础之多维数组T21——T25
  6. [小技巧][JAVA]函数返回一个长度不确定的数组 (int[ ])
  7. [剑指offer]面试题第[52]题[Leedcode][第160题][JAVA][相交链表][双指针]
  8. K-Dominant Character CodeForces - 888C 思维 构造
  9. CF#420 B. Okabe and Banana Trees 思维|暴力|几何
  10. 高中计算机教师招聘试题,中小学信息技术教师招聘考试真题及答案.doc