duilib 消息自己简单总结

背景

最近由于各种原因又学习了duilib c/c++界面库

总结

  1. CWindowWnd::__WndPro
  2. pThis->HandleMessage
  3. m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes)[这个是最重要的]

前2步

调用虚函数 HandleMessage, 我们做界面开发时候会继承CWindowWnd其实前面2步,只是把窗口HWND 与 我们代码对象绑定起来,建立关系,duilib 提供 WindowImplBase 方便我们开发界面而已,我们也可以不继承这个类,自己写事件和一些事件处理。

m_PaintManager.MessageHandle

进入界面库核心逻辑,前面都是只是传统界面逻辑,这里根据windwos 系统消息[WM_PAINT, WM_LBUTTONDOWN] 等等事件。

  1. 属性【画图】
  2. 行为

画图

根据我们的节点,一个一个画出来,这个类似html技术,目前所有主流界面开发都有点类似html 界面开发思路。

行为

根据鼠标和按键触发对应行为,dulib的行为基本都是通过notify 时间投递,这个投递在当前HWND里面。

这个类似win32 界面开发, 传统win32开发增加一个按钮事件 ,那么就投递 BM_CLICK给父窗口,父窗口在消息处理函数中处理这个消息。