Laden Sie ein Symbol im Windows-Programm
Ich versuche mit einem benutzerdefinierten Symbol in mein Programm, aber nichts passiert.
- Ich erstellt ein Symbol mit dieses tool.
-
Erstellte ich eine Ressource-Datei mit dem Inhalt:
MYICON1 ICON "glider.ico"
-
Habe ich noch die Ressource-Datei in meine Visual Studio 2013-Projekt und stellen Sie seinen Typ auf "Resource Compiler". Typ "Ressource" funktioniert nicht ("ungültige oder beschädigte Datei: cannot read auf 0x1A")
-
Ich laden Sie das Symbol mit dem folgenden code wird bei der Erstellung ein Fenster:
wc.hIcon = LoadIcon( hInstance, MAKEINTRESOURCE( MYICON1 ) ); //MYICON1 is defined in Resource.h as 101.
- Welches Symbol meinst du, zu einem, der in der Titelleiste, in der Taskleiste oder im explorer? Wollen Sie überprüfen, ob die LoadIcon-Aufruf erfolgreich?
InformationsquelleAutor SurvivalMachine | 2014-05-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur um sicherzugehen, dass ich richtig deine Frage verstanden...Alles kompiliert problemlos, wenn Sie die Art Ihre Ressource-Datei "Resource Compiler", richtig? Das ist die richtige Einstellung, lassen Sie es dort. Das andere Zeug ist für .NET-Anwendungen.
So, das problem ist nur, dass Sie nicht sehen, das Symbol? Welche Größe Symbol hast du in den editor? Die
LoadIcon
Funktion ist sehr alt und kann nur icons laden mit dem Standard-Größe, in der Regel 32 x 32. Wenn Sie möchten, laden Sie Symbole mit einer anderen Größe, die Sie benötigen, um dieLoadImage
- Funktion statt. Über 99% der Zeit, das ist die Funktion, die Sie aufrufen sollten icons laden. Ich habe nicht verwendetLoadIcon
im Jahre.Wie im Ruhestand Ninja schlägt in seinem Kommentar sicher sein, testen Sie die Rückgabewerte von Funktionen, wenn der code nicht funktioniert wie erwartet. Zum Beispiel testen, ob
hIcon
istNULL
. Wenn dem so ist, dieLoadImage
- Funktion ist fehlgeschlagen, und Sie müssen, um herauszufinden, warum. Wahrscheinlich werden die Parameter, die Sie übergeben wurden, falsch sind. Entweder gibt es keine Ressource mit der entsprechenden ID in Ihrem application Modul, oder gibt es kein Symbol mit der entsprechenden Größe in der icon-Datei.Anderen Tipp für debugging-Zwecke ist die Verwendung eines der integrierten system-icons. Wenn Sie sehen können, das Symbol, Sie wissen alles richtig funktioniert, und Sie können beginnen, tauschen Dinge aus, um laden Sie Ihre benutzerdefinierten Symbol. Zum Beispiel:
Die zeigen sollten die standard-Warnung Symbol, wie die, die Sie sehen in einer message-box. Wenn , dass Werke, sondern laden Ihre eigenen das Symbol nicht funktionieren, liegt das problem sehr wahrscheinlich mit dem .ico-Datei, die Sie erstellt haben.