Duilib HandleMessage与MessageHandler区别

flyfish

WindowImplBase的声明部分

        virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);virtual LRESULT HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);virtual LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM /*lParam*/, bool& /*bHandled*/);
WindowImplBase的实现部分LRESULT WindowImplBase::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam){LRESULT lRes = 0;BOOL bHandled = TRUE;switch (uMsg){case WM_CREATE:         lRes = OnCreate(uMsg, wParam, lParam, bHandled); break;case WM_CLOSE:          lRes = OnClose(uMsg, wParam, lParam, bHandled); break;
......case WM_MOUSEHOVER: lRes = OnMouseHover(uMsg, wParam, lParam, bHandled); break;default:                bHandled = FALSE; break;}if (bHandled) return lRes;lRes = HandleCustomMessage(uMsg, wParam, lParam, bHandled);if (bHandled) return lRes;if (m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes))return lRes;return CWindowWnd::HandleMessage(uMsg, wParam, lParam);}

CWindowWnd是父类,WindowImplBase是子类

LRESULT CWindowWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{return ::CallWindowProc(m_OldWndProc, m_hWnd, uMsg, wParam, lParam);
}

从代码可以看出关系

如果派生类 如果实现这些虚函数 会先执行HandleMessage,然后是HandleCustomMessage 最后是MessageHandler,
所有写代码的时候只要实现HandleCustomMessage即可

Duilib HandleMessage与MessageHandler区别相关推荐

  1. Redrain个人维护并使用的DuiLib和UiLib库源码下载地址

    转载请说明原出处:http://blog.csdn.net/zhuhongshu/article/details/40740353,谢谢~~ 首先说明一下Duilib和Uilib的区别:UiLIb是D ...

  2. DUILIB的消息处理HandleMessage

    duilib还提供了另外一种响应的方法,即消息映射DUI_BEGIN_MESSAGE_MAP,可以将DUI_MSGTYPE_CLICK消息映射到指定的函数(比如OnClick),这和在Notify判断 ...

  3. duilib之源码分析

    Duilib入门教程 http://www.cnblogs.com/Alberl/p/3342030.html http://blog.csdn.net/wogel/article/details/9 ...

  4. 使用Duilib做桌面应用总结

    使用Duilib做桌面应用总结 最近使用Duilib做了一个简单的桌面应用,在此做一个简单的总结,一是为了记录自己的学习过程,二是对Duilib的使用做一个简单的总结以便后期使用时查阅. Duilib ...

  5. duilib 子窗口位置_Duilib学习笔记《02》— 界面布局

    2. 简单空白窗体界面 此处以创建一个简单的空白的灰色背景窗体为例.对应的XML布局文件对应的也就很简单.如下: 1<?xml version="1.0" encoding= ...

  6. MFC中混合使用Duilib制作界面

    因为公司项目最近入了MFC的这个大坑,用MFC做UI做了一段时间,感觉不是很方便,开发效率有点慢. 看了c++里面做界面的类库,感觉Duilib比较符合做界面的需求,而且很多大公司也在使用Duilib ...

  7. createdroptargets_使用DUILIB建立项目

    使用DUILIB加载XML界面 这篇主要目的就是教给大家怎样在自己的工程中加载XML界面,这是最基本的应用,对于界面控件响应啥的,我就不讲了,在大家懂了这个之后,我会给大家一个其它人写的博客,再看他的 ...

  8. duilib学习领悟(2)

    再次强调,duilib只不过是一种思想! 在上一节中,我剖析了duilib中窗口类的注册,其中遗留两个小问题没有细说的? 第一个问题:过程函数中__WndProc()中有这么一小段代码: pThis ...

  9. 基于360SafeDemo对duilib整体框架的概述

    我们以一个具体窗口(360Safe Window)的创建为入口,建立起程序的整个框架.然后逐步深入,对其中的细节以及duilib中各个类在任务的执行过程中负责的任务进行分析.分析以问题作为导向,随着层 ...

最新文章

  1. 苹果史上最强芯片竟然是个“组装货”!iPhone SE涨价,13系列是真绿了
  2. 手机中geetest是什么文件_安卓手机系统中各类英文文件夹的含义详解,不知道的尽快熟知!...
  3. 网站主题明确需注意这三项原则!
  4. MAC能登录微信,浏览器连不上网
  5. 求数组中的最小值以及最小值的序列号
  6. Apache Commons工具集简介
  7. php 面向过程分页,无JS,完全php面向过程,数据分页
  8. 容器可以作为全局变量吗_四季青是风水树吗?哪些可以作为风水树?
  9. python安装caffe_Caffe安装笔记二:Caffe安装过程
  10. Linux fwrite 什么时候刷新,linux的fwrite()使用方法,当前时间写入文本的程序
  11. python缩进注意事项_python注意事项
  12. 学习,不仅要知其然,更要知其所以然。
  13. 【MyEclipse】配置代码格式化模版
  14. vue 跳转路由后返回上一页还是当前页面,但是路由地址有改变(已解决)
  15. 走向.NET架构设计—第三章—分层设计,初涉架构(后篇)
  16. java所有单词_JAVA常用英语单词列表
  17. 帆软BI日期函数总结
  18. 上网操作1000问(供初學者)
  19. 老白求助:WZ-H3甲醛传感器,计划配置到STM32F103ZET的PA2,PA3上,WZ-H3通讯配置:波特率9600,数据位8位,停止位1,校验位无;请大神指点,谢谢!
  20. pygame简单伪3d赛车赛道

热门文章

  1. element-plus输入框显示图标
  2. 深入理解 Vector
  3. Word添加题注、域的使用
  4. 艾永亮:靠二次元起家的B站如何赢得1.3亿活跃用户?
  5. 携手欧阳娜娜,索尼为聆听生活带来惊喜礼遇
  6. 我们为什么应该坚持写博客(起点 :?)
  7. Android Activity间跳转与传递数据
  8. 理解操作系统的进程的概念就如吃饭一样简单
  9. 破解excel密码保护
  10. 运筹学——matlab实现对偶单纯形法