小编ner*_*dap的帖子

添加到通知托盘的图标在鼠标悬停时消失

我希望我的应用程序在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"));
}
Run Code Online (Sandbox Code Playgroud)

然后在处理WM_CREATE消息时:

InitTrayIconData();
Shell_NotifyIcon(NIM_ADD, &nid);
Run Code Online (Sandbox Code Playgroud)

在处理WM_DESTROY时:

Shell_NotifyIcon(NIM_DELETE, &nid);
Run Code Online (Sandbox Code Playgroud)

我还注意到,由于某种原因,永远不会调用MSG_TRAYICON消息.

windows winapi

5
推荐指数
2
解决办法
3747
查看次数

标签 统计

winapi ×1

windows ×1