我在Visual Studio 2010工作。我正在创建一个简单的应用程序,显示托盘(任务栏)中的图标。我面临的问题是应用程序显示在托盘(任务栏)中,但它的图标不显示。我的代码如下

    NOTIFYICONDATA nid;
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = hWnd;
nid.uID = 100;
nid.uVersion = NOTIFYICON_VERSION;
nid.uCallbackMessage = WM_MYMESSAGE;
nid.hIcon = LoadIcon(NULL,  MAKEINTRESOURCE(IDI_ICON2));
//nid.hIcon =(HICON) hIcon;
wcscpy_s(nid.szTip, L"ultraDefender");
nid.uFlags = NIF_MESSAGE NIF_ICON NIF_TIP;
Shell_NotifyIcon(NIM_ADD, &nid);

请引导我

最佳答案

你应该在填写前把结构归零。。。在非零值将影响结果的情况下,您没有使用其他成员:

NOTIFYICONDATA nid;
ZeroMemory( &nid, sizeof(nid) );
...

此外,正如诺兹所说,你的旗帜需要:
nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;

关于c++ - 托盘图标未在Visual c++中显示图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18635007/

10-11 21:13