TC官方合作论坛

 找回密码
 立即注册
查看: 853|回复: 12
打印 上一主题 下一主题

[问题] 拖盘无法响应消息,求救

[复制链接]
跳转到指定楼层
楼主
发表于 2015-7-17 16:02:58 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
有没有大哥知道使用下面函数创建托盘图标后,相关的消息路由或者消息过程该怎么写,想要鼠标点击那个托盘图标发生点事件,论坛里面的相关托盘响应代码针对的都是TC封装的生成托盘的函数,对下面代码不适用,有没有相关好的思路或方法告知一下,谢谢

功能 创建拖盘(tip)
    变量 hIcon =  GetIconHandle(窗口获取自我句柄())//我们是第一次创建拖盘,所以需要图标
    变量 NOTIFYICONDATA = CreateNOTIFYICONDATA(NIF_ICON + NIF_TIP,tip,"","",hIcon)   //重构结构体内容
    动态库调用("shell32.dll","long","Shell_NotifyIconW","long",NIM_ADD,"pstruct",NOTIFYICONDATA)//创建托盘
结束
回复

使用道具 举报

13#
 楼主| 发表于 2015-7-18 08:57:33 | 只看该作者
超自然 发表于 2015-7-17 17:05
拿去吧,一般写法,装B特技写法都有了

老大,能否给个托盘装逼写法里面的气泡显示函数?用其他写法,没有成功
回复 支持 反对

使用道具 举报

12#
发表于 2015-7-17 22:53:59 | 只看该作者
本帖最后由 超自然 于 2015-7-17 22:56 编辑

疏忽了,忘记后面加个字节放\0这个看不见 的字符
字符串在内存中以\0为结尾,A编码字符串最后是一个\0作为结尾,TC用U编码,俩字节表示一个字符,最后面是\0\0表示字符串结束.
NOTIFYICONDATA["szTip"]["wchar"]被声明成了U类型,所以在这里的1内部会转换成2字节,如果声明成
NOTIFYICONDATA["szTip"]["char"],那么就要字符串长度*2+2才不会出现乱码
少了结束符,API去读的时候会读到非法内存去
回复 支持 反对

使用道具 举报

11#
 楼主| 发表于 2015-7-17 22:42:09 | 只看该作者
超自然 发表于 2015-7-17 17:05
拿去吧,一般写法,装B特技写法都有了

最后还是用装逼方法搞定了,无意间解决了托盘标题乱码问题,  NOTIFYICONDATA["szTip"]["wchar"]=111222 //字符串长度(托盘文本),将这个长度扩大就不会出现乱码了,测试了一下确实是长度不够引起的,能否告知这个属性的作用,具体是什么原因造成的呢,感觉是字符编码不一致问题。但是具体是哪里出了问题,确实不懂,求老师普及哈。已经测试NOTIFYICONDATA["szTip"]["wchar"]>字符串长度(托盘文本)才不会乱码。已经改为 NOTIFYICONDATA["szTip"]["wchar"]=字符串长度(托盘文本)+1,然后就不出现乱码了。求老师去测试一下的呢。就是你发我的相应托盘(写法2)里面的问题。非常感谢大大发给我的这个代码,长见识了,学到了好多东西,同时也把自己程序问题解决掉了,再次感谢!

123.png (15.08 KB, 下载次数: 4)

123.png
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2015-7-17 21:06:04 | 只看该作者
超自然 发表于 2015-7-17 17:05
拿去吧,一般写法,装B特技写法都有了

大哥,响应托盘(写法1)这种写法里面怎么删除托盘呢,能给个方法吗?急用,用装逼写法里面那个方法,程序可以正常运行,但是托盘标题乱码(自己设定的标题后面会出现乱码),但是用你的项目或者新建项目运行又没事,但是移植到我的程序里面,托盘标题就乱码,找了好久没有找出原因,求救

22.png (1.55 KB, 下载次数: 2)

22.png

2222.png (6.15 KB, 下载次数: 2)

2222.png
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2015-7-17 21:03:57 | 只看该作者
yhmjh 发表于 2015-7-17 17:50
恩恩,看了另外一个,疑惑接触了,这样一来就可以实现退出按钮事件里面先删除托盘,然后再关闭自身操作了 ...

大哥,响应托盘(写法1)这种写法里面删除托盘呢,能给个方法吗?急用,用装逼写法里面那个方法,程序可以正常运行,但是托盘标题乱码(自己设定的标题后面会出现乱码),但是用你的程序重开又没事,但是移植到我的程序里面,托盘标题就乱码,找了好久没有找出原因,求救

22.png (1.55 KB, 下载次数: 1)

22.png

2222.png (6.15 KB, 下载次数: 1)

2222.png
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2015-7-17 19:24:54 | 只看该作者
超自然 发表于 2015-7-17 17:43
就猜到你会问.装逼写法2里面消息16下面那段就是删除托盘,16是窗口销毁,放到别的消息下就行了 ...

大神,已经按照你的方法已经完美解决了我的问题,太感谢了!!
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2015-7-17 17:50:40 | 只看该作者
超自然 发表于 2015-7-17 17:43
就猜到你会问.装逼写法2里面消息16下面那段就是删除托盘,16是窗口销毁,放到别的消息下就行了 ...

恩恩,看了另外一个,疑惑接触了,这样一来就可以实现退出按钮事件里面先删除托盘,然后再关闭自身操作了。程序里面有定时器,线程,经常点击tc的关闭按钮,界面报错,异常退出,强制关闭所有线程都不行,后来就找到关进程的方法试试,结果效果不错,但是又遇到托盘图标不自动消失的问题,然后就来论坛发帖求救了,太感谢超自然老大了!!!程序终于有救了,谢谢!
回复 支持 反对

使用道具 举报

6#
发表于 2015-7-17 17:43:40 | 只看该作者
就猜到你会问.装逼写法2里面消息16下面那段就是删除托盘,16是窗口销毁,放到别的消息下就行了
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2015-7-17 17:40:23 | 只看该作者
超自然 发表于 2015-7-17 17:05
拿去吧,一般写法,装B特技写法都有了

大哥,真的很抱歉,可以再帮我写一个删除或者隐藏托盘的方法吗,感激不尽了,确实是刚刚入门,好多东西还不懂,还请赐教一下。。。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-20 00:43 , Processed in 0.150262 second(s), 27 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表