Duilib扩展《01》— 双击、右键消息扩展
来源:互联网 发布:软件平台介绍ppt 编辑:程序博客网 时间:2024/06/14 21:09
用过duilib的可能会发现,duilib中有些控件没能很好的区分左键、右键等消息。所以根据实际需要,我们需要进行相关区分处理,或者自行扩展。
一. 左键、右键消息区分
我们以CListUI控件来分析说明。对于CListUI控件,在实际应用中有时我们需要响应双击或右键消息来执行不同操作,而目前的duilib中CListUI控件Item选择是无法区分左键右键消息的,究其原因duilib中对这块的处理都是发送的itemclick消息。具体可查看duilib中UIList.cpp文件中CListContainerElementUI::DoEvent部分的源码的处理:
解决的办法可以区分type类型发送不同的event。
二. 消息扩展
我们以添加双击消息为例来说明。在Duilib学习笔记《05》——消息响应处理中,我们已经简单了提到了duilib中对相关操作的自定义的消息类型,可以在duilib工程中的UIDefine.h中查看。
1)消息定义
类似的,我们扩展消息也需要在此添加。我们可以发现在UIDefine.h中已经定义了click的消息:#define DUI_MSGTYPE_CLICK (_T(“click”)),却没看到双击消息。对应的,我们在此处添加一个双击消息:#define DUI_MSGTYPE_DBCLICK (_T(“dbclick”))
2)消息传递
在UIManager.h文件中我们可以看到已经定义了UIEVENT_DBLCLICK、UIEVENT_RBUTTONDOWN等事件消息,这是因为它的右键和双击等消息只给了内部的控件使用,我们需要将其传递出来,所以在UIControl.cpp文件的CControlUI::DoEvent中传递双击消息。如下:
提醒:这里不要return,因为双击消息UIEVENT_DBLCLICK还需要传递给List等控件。
3)消息处理
最后,在外部使用时,在Notify函数中根据实际情况进行消息判断处理:
这样一来,即可响应双击消息。
>> 本文固定链接: http://www.who1753.com/duilib-expand-01.html
>> 转载请注明: who1753 2014年02月03日 于 WHO1753 发表
- Duilib扩展—双击、右键消息扩展
- Duilib扩展《01》— 双击、右键消息扩展
- Duilib扩展《01》— 双击、右键消息扩展
- Duilib扩展《01》— 双击、右键消息扩展
- Duilib扩展《01》— 双击、右键消息扩展
- Duilib扩展《01》— 双击、右键消息扩展
- Duilib扩展《01》— 双击、右键消息扩展
- Duilib扩展—扩展GIF显示
- duilib进阶教程 -- 扩展duilib的消息 (11)
- duilib list控件扩展
- duilib list 扩展
- duilib list控件扩展
- Duilib ListContain 扩展
- 扩展右键菜单
- 关于Duilib的扩展——“拖放”实现(一)
- 关于Duilib的扩展——“拖放”实现(二)
- 关于duilib中的list的扩展探索
- 关于duilib中的list的扩展探索
- UVA 3708<数学题><在一个集合中挑选出与另外一个集合相同数量的点求两者之前的差的绝对值最小>
- __weak & __strong
- Duilib学习笔记《07》— 资源加载
- 桌面图标打不开问题
- WiresShark使用初探
- Duilib扩展《01》— 双击、右键消息扩展
- centos6.0安装中文输入法
- Android——4.2 - 3G移植之路之 AT 通信 (四)
- CUDA Thread Block
- EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配。上一计数 = 0,当前计数 = 1。
- Android——4.2 - 3G移植之路之 APN (五)
- iOS的一些小技巧
- IOS 自定义界面切换动画-Custom Segue
- Android——4.2 - 3G移植之路之 reference-ril .pppd 拨号上网 (三)