再次双击exe的图标,如何激活存在的实例的窗口 MFC

来源:百度知道 编辑:UC知道 时间:2024/06/16 23:15:29
如同Foobar等一些软件,如果已经开了一个程序实例(实例1);我再双击foobar图标,会激活foobar的窗口,如果实例1在最小化到托盘的状态下,则会激活并显示主窗口

另外,我编了一个托盘程序,使用的时候,由于重启过explorer.exe,不知什么时候,我的程序的托盘图标不见了,但是在系统进程里面还能找到它,怎么回事?怎么激活这个窗口(无法响应鼠标事件)?
还有一个问题,就是托盘提示文字的动态更新,就像BT下载一样,不停的更新当前的字符串,这个怎么做?
我在OnTimer里面写 Shell_NotifyIcon(NIM_MODIFY, &nid);
只有在鼠标再次移到托盘上,字符串才更新一次

这个就是简单的托盘的功能。

具体你要把你的托盘代码拿出来,才能告诉你具体哪里错啦。

就是托盘提示文字的动态更新
可以用另一个线程来做,定时发送消息.

由于重启过explorer.exe,不知什么时候,我的程序的托盘图标不见了,但是在系统进程里面还能找到它,怎么回事?
算是windows的BUG

激活并显示主窗口
你可以注册一个全局钩子,检测到程序重复运行就激活已经运行的,具体的代码我这没有.