我希望我的應用程序在Windows 7的通知區域中有圖標。我使用Shell_NotifyIcon添加圖標。圖標出現,但當我將鼠標指針放在圖標上時,圖標消失。該應用程序正在運行整個時間。該圖標不隱藏,它只是消失。添加到通知托盤的圖標在鼠標上消失
Shell_NotifyIcon返回一個非零值,這意味着它成功。
下面是相關代碼:
static const int ID_TRAYICON = 300;
static const int MSG_TRAYICON = WM_USER + 1;
NOTIFYICONDATA nid;
void InitTrayIconData()
{
memset(&nid, 0, sizeof(NOTIFYICONDATA));
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = hwnd;
nid.uID = ID_TRAYICON;
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
nid.uCallbackMessage = MSG_TRAYICON;
nid.hIcon = LoadIcon(nullptr, IDI_APPLICATION);
//nid.uVersion = NOTIFYICON_VERSION_4;
lstrcpy(nid.szTip, TEXT("Data Aggregator in-dev version"));
}
然後在處理WM_CREATE消息:
InitTrayIconData();
Shell_NotifyIcon(NIM_ADD, &nid);
而且在處理WM_DESTROY:
Shell_NotifyIcon(NIM_DELETE, &nid);
我也注意到,對於一些因爲MSG_TRAYICON消息從未被調用。
我有完全相同的問題,謝謝指出我在正確的方向。 – quantum