仿QQ托盘消息盒子

这次写的仿QQ托盘的消息盒子代码没有放到Github上面,由于这个工程里面有一部份核心代码.不过这里不妨碍我给大家讲解怎么编写一个属于自己的仿QQ托盘的代码.

废话不多说,我们先来看看仿QQ托盘的效果图

                                          仿QQ托盘消息盒子_第1张图片                     

这是我用VS起来测试的效果

如果这个Demo做的好的话,希望大家收藏下,给予我鼓励,或者关注我,让我以后有更多小知识和大家分享.

言回正传,要想学会仿QQ托盘的例子,大家要具备的知识有:C++\Windows编程\DirectUI(Duilib),有了这些知识,你就可以往下看,因为我的界面开发用的是Duilib开源库.没有用MFC.纯Win32编程.

首先我们先看下我仿QQ托盘的消息盒子的大概思路图,如下所示:

仿QQ托盘消息盒子_第2张图片

仿QQ托盘的大概流程图

核心工程及代码就下面几个:

                                                           仿QQ托盘消息盒子_第3张图片

下面开始就围绕这图讲解:

托盘接口:(代码TrayIcon中)

                            仿QQ托盘消息盒子_第4张图片

CTrayIcon类主要分装了托盘的添加\删除\显示\托盘图标设置\提示文本设置,其接口简单明了.而基类主要是通过定时器去检测,鼠标的位置是否在托盘处,如果检测鼠标不在托盘处,会把消息投递到消息盒子窗口中,会收到鼠标离开事件.其中在托盘处,对鼠标操作的事件(鼠标移动\鼠标左键\鼠标右键)都递到消息盒子窗口中处理.

托盘消息盒子窗口(代码:TrayFrame中)

                             仿QQ托盘消息盒子_第5张图片

该窗口主要做的事情:

①托盘事件的处理(鼠标移动\鼠标离开\鼠标左键\鼠标右键)

②托盘消息盒子窗口的大小改变及及位置调整

③每个消息Item的添加\删除\排序等处理

④同时需要检测鼠标是否在消息盒子窗口上或托盘处.

按照我上面讲解的思路,你们也可以去打造一个仿QQ托盘的消息盒子.由于代码量太多,花了几天时间写的.如果大家想学或者想问问题的可以加Q:1760996050


你可能感兴趣的:(防QQ托盘)