[WinAPI] Icon wird in Titelleiste nicht dargestellt

Hunter

Erfahrenes Mitglied
Hallo,
mein Problem ist, dass mir das Icon in der Titelleiste nicht dargestellt wird. Dh. es wird das Standard-Icon verwendet. Das komische an der Sache ist jedoch, dass es in der Task-Leiste und im Explorer richtig angezeigt wird.

main.cpp
Code:
    WndClassEx->hIcon            = (HICON) LoadIcon(hInstance, MAKEINTRESOURCE(APP_ICON)); 
    WndClassEx->hIconSm          = (HICON) LoadIcon(hInstance, MAKEINTRESOURCE(APP_ICON));

resource.h
Code:
#define APP_ICON 5000

Resources.rc
Code:
APP_ICON	ICON	"power_button.ico"


Bekanntlicherweiße wird ja das erste Icon in der Resource.rc verwendet - macht es ja auch, jedoch nicht in der Titlebar, oder muss ich da was seperates angeben?
 
Hi,

ich habe derzeit keine Zeit und kann nur "raten". Jedenfalls würde ich dir mal empfehlen LoadImage statt LoadIcon zu versuchen (mit type = IMAGE_ICON). Ich habe noch nie mit Ressourcen gearbeitet, kann mir aber eigentlich nicht vorstellen, dass es daran liegt... nichts desto trotz: versuch LoadImage und lade die Datei manuell ohne Ressource.
 
Das Problem ist es ja, denn wenn ich es mit LoadImage lade, dann muss das Icon vorhanden sein, dann funktionierts. Andersrum, wenn ich versuche mit LoadImage das Icon aus der Resource zu laden, dann gibt es eine Fehlermeldung.

Hier mal der Code mit LoadImage von der Resource:
Code:
(HICON) LoadImage(NULL, MAKEINTRESOURCE(APP_ICON), IMAGE_ICON, 64, 64, LR_LOADFROMFILE);
 
Das wird an deinem letzten Parameter zusammenhängen. Wenn du aus einer Ressource laden willst, solltest du loadfromfile durch LR_DEFAULTCOLOR ersetzen ;)
 
Jetzt kommt zwar keine Fehlermeldung, allerdings wird das Icon auch nicht angezeigt. :)


EDIT: Mit GetLastError() bekomme ich diese Fehlermeldung, warum aber?
Code:
ERROR_RESOURCE_TYPE_NOT_FOUND1813 (0x715)
The specified resource type cannot be found in the image file.


main.cpp
Code:
WndClassEx->hIcon            = (HICON) LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(APP_ICON), IMAGE_ICON, 64, 64, LR_DEFAULTCOLOR);




EDIT²: Problem gelöst! :)
Code:
WndClassEx->hIcon          = (HICON) LoadImage(GetModuleHandle(NULL), "APP_ICON", IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück