Ich verwende WM_SETICON, um das Symbol einer Anwendung zu ändern. Dies funktioniert, wenn das Programm in Visual Studio-Debugger oder über die Befehlszeile ausgeführt wird, aber das falsche Taskleistensymbol beim Starten über eine Desktopverknüpfung unter Windows 7 verwendet. Durch Klicken mit der rechten Maustaste, um das Programm in der Taskleiste anzuheften und es zu lösen, wird das Symbol ordnungsgemäß angezeigt .WM_SETICON funktioniert nicht, wenn Programm über Verknüpfung gestartet
HICON icon = (HICON) LoadImage(NULL, iconStr, IMAGE_ICON, 32, 32, LR_LOADFROMFILE| LR_SHARED);
SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)icon);
SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)icon);
SendMessage(hwnd, WM_SETICON, ICON_SMALL2, (LPARAM)icon);
Es scheint, als ob etwas über eine Verknüpfung zu starten Sie das Programm verursacht einen schalen cached Symbol verwendet wird und WM_SETICON ignorieren. Auch das kleine Symbol neben der Titelleiste des Programms wird ordnungsgemäß aktualisiert. Es gibt nur Probleme mit dem Symbol in der Taskleiste.
Ich muss das Symbol wirklich programmatisch setzen, da es sich je nach Kommandozeile ändert. Kennt jemand eine Möglichkeit, dies zum Funktionieren zu bringen? Vielen Dank.