Toto vlákno bylo označeno za vyřešené.
Dobrý den, mám problém se zobrazení vlastní ikony v tzv. balónové zprávě. Když vytvořim například takovouhle zprávu, tak potřebuju změnit to modrý íčko.
Na msdn (http://msdn.microsoft.com/en-us/library/windows/desktop/bb773352%28v=vs.85%29.aspx ) jsem zjistil, že u členu struktury NOTIFYICONDATA.dwInfoFlags musim zvolit NIIF_USER a potom do členu hBalloonIcon přiřadit handle ikony. Jenomže když to udělam, funkce Shell_NotifyIcon vrátí FALSE. Doufám, že jsem se správně vyjádřil
Tak nakonec mi pomohl Radek Chalupa, kterému bych chtěl tímto poděkovat za ochotu. Problém byl v tom, že do proměnné dwInfoFlags se musí přiřadit kromě NIIF_USER také NIIF_LARGE_ICON.
A tady je správný zdrojový kód, kdyby to někoho zajímalo.
NOTIFYICONDATA nid;
ZeroMemory(&nid, sizeof(nid));
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = g_hwnd;
nid.hIcon = (HICON) GetClassLongPtr(g_hwnd, GCLP_HICONSM);
strcpy_s(nid.szTip, "Notifykační Ikona"); //Plovoucí text
nid.uID = 1;
nid.uCallbackMessage = WM_NOTIFY_ICON;
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP | NIF_INFO;
nid.dwInfoFlags = NIIF_LARGE_ICON |NIIF_USER;
nid.hBalloonIcon = (HICON) LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(IDI_DROPBOX), IMAGE_ICON, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), NULL); //Ikona baloon tool-tipu
nid.dwState = 0;
nid.uVersion = NOTIFYICON_VERSION_4;
nid.uTimeout = 10000; //Doba zobrazení (ignorováno ve Win Vista a vyšší)
strcpy_s(nid.szInfo, TEXT("Pozor! Vaše myš je hladová.\nVložte sýr do mechaniky.")); //Text do 255 znaků
strcpy_s(nid.szInfoTitle, "Balónový tool-tip"); //Nadpis zprávy
Shell_NotifyIcon(NIM_ADD, &nid))
Zjistit počet nových příspěvků
Přidej příspěvek
Uživatelé prohlížející si toto vlákno Uživatelé on-line: 0 registrovaných, 53 hostů
Podobná vlákna
Ikona — založil roman.jaros