duilib 响应windows原生消息和自定义消息
来源:互联网 发布:e4a数据库 编辑:程序博客网 时间:2024/05/19 14:55
2013年11月2日 作者:Admin 一、windows原生消息 同样,入门教程只是给出了响应windows原生消息的办法,并没给出例子,这里以自适应屏幕辨别率为例。迅雷播放器固然可以在启动的时辰主动调剂窗口大小,然则当屏幕辨别率及时改变时并没有调剂窗口,所以我们给播放器加上及时调剂大小的功能,很明显,应当响应WM_DISPLAYCHANGE消息,而duilib本身处理惩罚windows消息的函数是在HandleMessage里,是以我们重载HandleMessage函数,参加如下代码: LRESULT CDuiFrameWnd::HandleMessage( UINT uMsg, WPARAM wParam, LPARAM lParam ) { LRESULT lRes = __super::HandleMessage(uMsg, wParam, lParam); switch (uMsg) { HANDLE_MSG (*this, WM_DISPLAYCHANGE, OnDisplayChange); } return lRes; } 如许我们就可以在OnDisplayChange函数里响应辨别率改变的消息了,记得包含头文件#include void CDuiFrameWnd::OnDisplayChange( HWND hwnd, UINT bitsPerPixel, UINT cxScreen, UINT cyScreen ) { ::SetWindowPos(m_PaintManager.GetPaintWindow(), NULL, 0, 0, cxScreen, cyScreen, SWP_FRAMECHANGED|SWP_NOZORDER|SWP_NOACTIVATE); } 二、自定义消息 自定义消息也是经常用到的,所以这里也介绍一下,和windows编程一样,本身定义消息ID和函数,只不过将消息处理惩罚搬到了HandleMessage函数罢了。 播放器的时候和文件进度时刻都在更新,所以这里介绍一下自定义一个消息,用于处理惩罚播放器的通知。 1、定义消息ID #define WM_USER_POS_CHANGED WM_USER + 2 // 文件播放地位改变 2、响应自定义消息: 在HandleMessage函数的switch分支里加上如下代码即可: case WM_USER_POS_CHANGED: return OnPosChanged(*this, wParam, lParam); 如许我们就可以在OnPosChanged函数里处理惩罚WM_USER_POS_CHANGED消息了。 3、发送自定义消息: 在须要发送消息的处所调用 ::PostMessage(*this, WM_USER_POS_CHANGED, wParam, lParam); 即可,和windows一样(当然,SendMessage也OK,看景象应用) 在入门教程里就多次夸大,duilib只是一个UI库,其他处所依然是windows编程,经过这么多例子的讲解,如今应当懂得得差不久不多了吧~O(∩_∩)O~来自为知笔记(Wiz)
0 0
- duilib 响应windows原生消息和自定义消息
- duilib---响应windows原生消息和自定义消息
- 响应windows原生消息和自定义消息
- duilib进阶教程 -- 响应windows原生消息和自定义消息(13)
- duilib 捕捉Windos原生消息和自定义消息
- duilib创建自定义消息
- DuiLib(4)——消息响应
- QT 自定义消息响应
- duilib消息
- vlc响应windows消息
- Windows消息响应机制
- Windows消息响应机制
- 2013 duilib入门简明教程 -- 事件处理和消息响应 (17)
- 为duilib的MenuDemo增加消息响应,优化代码和显示效果
- SendMessage发送自定义消息及消息响应
- windows消息响应机制之一:消息分析器
- Windows 消息响应机制之二:消息
- windows消息响应机制之一:消息分析器
- IOS学习笔记-3
- 【SAE 部署 JavaWeb 项目报 404 错误】
- Spring Mvc全局异常捕获
- GDB实践:一场std::sort引发的coredump
- HDU 3714 Error Curves
- duilib 响应windows原生消息和自定义消息
- Red Hat Linu分区方案
- xp/win7修改远程桌面端口号3389的方法,超级详细的哦!
- ExtJS学习-----------Ext.Array,ExtJS对javascript中的Array的扩展(实例)
- Vim打造强大的编辑器
- 贝叶斯定理
- UITableViewCell 的长按事件处理
- 复制构造器——Copy Constructor
- linux 延时函数 msleep() 与mdelay()