hIcon ERROR_NOT_SUPPORTED

hIcon ERROR_NOT_SUPPORTED

本文关键字:SUPPORTED NOT hIcon ERROR      更新时间:2023-10-16

我正在开发一个C++应用程序,该应用程序具有动态更新的notifyIcon。事情进展顺利,除了这个问题;hIcon 变为 NULL,并抛出ERROR_NOT_SUPPORTED。我一辈子都无法弄清楚发生了什么。这是我绘制 HICON 的代码:

// hIco is initialised like this:
// hIco = CreateIcon(NULL, 32, 32, 1, 32, { 0x00 }, { 0x00 });
//HICON hIco;
void CreateGraphIco() {
int width = 32;
int height = 32;
const int size = 32 * 32 * 4;
// Get old icon buffer
ICONINFO info = { 0 };
GetIconInfo(hIco, &info);
BYTE xorBuffer[size];
BYTE andBuffer[size];
GetBitmapBits(info.hbmColor, size, xorBuffer);
GetBitmapBits(info.hbmMask, size, andBuffer);
// (The drawing code for the icon is quite long,
// complicated, and irrelevant, so i'll leave it out)
hIco = CreateIcon(NULL, width, height, 1, 32, andBuffer, xorBuffer);
DeleteObject(info.hbmColor);
DeleteObject(info.hbmMask);
notify.hIcon = hIco;
Shell_NotifyIcon(NIM_MODIFY, &notify);
}


虽然这确实有效,但它只能工作几秒钟或几分钟,直到最终,通知图标将消失,hIco将变为NULL。
任何帮助将不胜感激!我真的很纠结这个问题,如果有人能帮助我解决这个问题,我将不胜感激。我确定我犯了一些愚蠢的错误,我什至没有注意到。
干杯!
好的

,所以基本上对于将来遇到相同问题的任何人,请确保在致电CreateIcon之前致电DestroyIcon
谢谢阿空加瓜!