如何解决隐藏托盘图标后的空白?
zys85 2008-06-03 02:30:24 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);
但我总觉得应该有更正确的办法.