C++ 托盘图标未在Visual c+中显示图像+;
我在VisualStudio2010工作。我正在创建一个简单的应用程序,它在任务栏(任务栏)中显示图标。我面临的问题是,应用程序显示在任务栏中,但它的图标没有显示。我的代码如下C++ 托盘图标未在Visual c+中显示图像+;,c++,c,C++,C,我在VisualStudio2010工作。我正在创建一个简单的应用程序,它在任务栏(任务栏)中显示图标。我面临的问题是,应用程序显示在任务栏中,但它的图标没有显示。我的代码如下 NOTIFYICONDATA nid; nid.cbSize = sizeof(NOTIFYICONDATA); nid.hWnd = hWnd; nid.uID = 100; nid.uVersion = NOTIFYICON_VERSION; nid.uCallbackMessage = WM_MYMESS
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);
请引导我
nid.uFlags = NIF_MESSAGE NIF_ICON NIF_TIP;
应该是
nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
IDI_ICON2
而且
应该是
nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
IDI_ICON2
如果这是图标的名称,则应在填充之前将结构归零。。。在非零值将影响结果的情况下,还有一些您未使用的其他成员:
NOTIFYICONDATA nid;
ZeroMemory( &nid, sizeof(nid) );
...
此外,正如noz所说,您的旗帜需要:
nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
我认为您的LoadIcon()调用是错误的:
LoadIcon(NULL)
只适用于标准图标;您需要包含图标的EXE或DLL的HINSTANCE或HMODULE。但即使是标准图标也不会显示nid.uFlags=NIF_MESSAGE | NIF_icon | NIF_TIP;出现语法错误表达式为expectednid.uFlags=NIF_MESSAGE | NIF_ICON | NIF_TIP;应出现语法错误表达式