Duilib的消息传递机制

本文介绍了Duilib界面库中窗口类WindowsImplBase如何处理消息,以及如何通过INotifyUI的消息处理函数响应控件事件。重点讨论了如何在接收到控件消息后,利用PaintManager查找并操作其他控件的方法,包括通过坐标、名字和控件属性的查找方式。此外,还提到了使用强制类型转换来调用特定控件的设置参数函数。
摘要由CSDN通过智能技术生成

学会了怎么写XML文件,但是我还是不知道怎么实现各个控件之间的消息传递。于是我对源代码好好研究了一下,发现duilib作为一个界面库有自己独立的封装的窗口类,也就是WindowsImplBase。

在这个类中,实现对windows窗口传过来的消息的处理,以及初始化时创建控件,绘制窗口等功能。继承这个窗口类,就可以将我们自己的XML文件解析,显示自己设计的窗口。

//.h头文件
virtual CControlUI* CreateControl(LPCTSTR pstrClass); //创建XML文件中的控件,如果自绘控件的话,需要重载这个函数,否则无法加载XML文件中的自绘控件
virtual tString GetSkinFolder();  //设置XML文件的路径
virtual tString GetSkinFile() = 0;//获取XML文件的名字

窗口类解析完XML文件后,窗口就可以显示了,我们还要重载INotifyUI类中的消息处理函数来处理自己窗口获得的消息。

void Notify(TNotifyUI&
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值