如何解决隐藏托盘图标后的空白?

zys85 zys85 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
HWND hTray = FindWindow(TEXT( "Shell_TrayWnd "), NULL);
if(hTray == NULL)
break;
hTray = FindWindowEx(hTray, NULL, TEXT( "TrayNotifyWnd "), NULL);
if(hTray == NULL)
break;
hTray = FindWindowEx(hTray, NULL, TEXT( "SysPager "), NULL);
if(hTray == NULL)
break;
hTray = FindWindowEx(hTray, NULL, TEXT( "ToolbarWindow32 "), NULL);
if(hTray == NULL)
break;
iNum = SendMessage(hTray, TB_BUTTONCOUNT, NULL, NULL); //获取任务栏上图标个数
for (i = 0; i < iNum; i++)
SendMessage(hTray, TB_HIDEBUTTON, i, TRUE); \
我用这个办法可以隐藏图标,但是留下了一片空白,只有在再次加入或删除图标后才能正常,查以前的帖子,发现有人说
try SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE, 0, "Environment ") etc.
可以解决问题,但是我使用后没有效果,不知道是使用方法的问题还是别的原因,我是2000系统,如果可以的话,详细一点.

p.s:折衷的办法是NOTIFYICONDATA nid2;
nid2.cbSize = sizeof(NOTIFYICONDATA);
nid2.hWnd = this->m_hWnd;
nid2.uID = IDR_MAINFRAME+1;
strcpy(nid2.szTip, "update"); //提示
Shell_NotifyIcon(NIM_ADD, &nid2);
Shell_NotifyIcon(NIM_DELETE, &nid2);
但我总觉得应该有更正确的办法.
...全文

相关推荐

托盘图标的制作,双击托盘图标重新打开窗口,点击托盘图标右键可以选择是打开窗口还是退出程序

源码包含托盘图标的执行文件,和一个实例程序,实现的功能如下: 运行程序,桌面右下方出现托盘图标,关闭程序窗口时窗口关闭,此时双击托盘图标重新打开窗口,点击托盘图标右键可以选择是打开窗口还是退出程序!

Huaerge

VB中实现托盘图标控件的全攻略

Visual Basic(VB)是一个简单易用的编程语言,非常适合快速开发Windows应用程序。VB的组件功能十分强大,其中,托盘图标控件是一项重要的功能,它允许开发者在系统托盘区域创建图标,从而实现程序快速隐藏、状态提示、快捷菜单等功能。托盘图标控件广泛应用于需要频繁交互但不想占用太多屏幕空间的程序中。例如,媒体播放器、即时通讯软件、系统监控工具等。在这一章中,我们将探索VB托盘图标控件的基本概念,以及它在程序设计中的重要作用和优势。

Rubix-Kai

快速隐藏托盘图标、文件、桌面等

快速隐藏托盘图标、文件、桌面等一些软件运行图标。上班族必备,可隐藏QQ,迅雷等运行图标。

leefeng520

置托盘图标和弹出托盘菜单程序源码

今天给大家分享的是置托盘图标和弹出托盘菜单的程序源码。@feehool。

虚坏叔叔

win7旗舰版系统图标显示空白的解决方法.docx

win7旗舰版系统图标显示空白的解决方法.docx

Lidx0710
评论 9
收藏 已收藏
分享
返回顶部
zys85
VC/MFC 16,550 成员 421,606 内容