Informationen zu Symbolen
Das System verwendet Symbole auf der gesamten Benutzeroberfläche, um Objekte wie Dateien, Ordner, Verknüpfungen, Anwendungen und Dokumente darzustellen. Mit den Symbolfunktionen können Anwendungen Symbole erstellen, laden, anzeigen, anordnen, animieren und zerstören. Informationen zum Angeben von Symbolen für Dateitypen finden Sie unter ExtractIcon.
Diese Übersicht enthält Informationen zu den folgenden Themen:
- Symbol "Hot Spot"
- Symboltypen
- Symbolgrößen
- Symbolerstellung
- Symbolanzeige
- Symbolvernichtung
- Symbolduplizierung
Symbol "Hot Spot"
Eines der Pixel in einem Symbol ist als Hotspotsfestgelegt. Dies ist der Punkt, den das System verfolgt und als Position des Symbols erkennt. Der Hotspots eines Symbols ist in der Regel das Pixel, das sich in der Mitte des Symbols befindet. Wenn Sie die CreateIconIndirect-Funktion verwenden, um ein Symbol zu erstellen, können Sie ein beliebiges Pixel als Hotspots angeben.
Symboltypen
Das Betriebssystem stellt eine Reihe von Standardsymbolen bereit, die für jede Anwendung jederzeit zur Verfügung stehen. Die Headerdateien des Software Development Kits (SDK) enthalten Bezeichner für die Standardsymbole– die Bezeichner beginnen mit dem IDI-Präfix. _
Jedem Standardsymbol ist ein entsprechendes Standardbild zugeordnet. Der Benutzer kann das Standardbild, das jedem Standardcursor zugeordnet ist, jederzeit ersetzen.
Benutzerdefinierte Symbole sind für die Verwendung in einer bestimmten Anwendung konzipiert und können ein beliebiges Design sein. Im Folgenden sind mehrere benutzerdefinierte Symbole dargestellt.

Symbolgrößen
Das System verwendet vier Symbolgrößen:
- System klein
- System groß
- Shell klein
- Shell groß
Das kleine Systemsymbol wird in der Fensterbeschriftung angezeigt.
So ändern Sie die Größe des kleinen Systemssymbols
- Klicken Sie Systemsteuerung auf Anzeigen und dann auf die Registerkarte Darstellung.
- Wählen Sie in der Liste Element die Option Beschriftungsschaltflächen aus, und legen Sie dann das Feld Größe fest.
So rufen Sie die Größe des kleinen Systems ab
- Rufen Sie die GetSystemMetrics-Funktion mit SM _ CXSMICON und SM _ CYSMICON auf.
Das Symbol "System groß" wird hauptsächlich von Anwendungen verwendet, wird aber auch im Dialogfeld ALT+TAB angezeigt. Die Funktionen CreateIconFromResource, DrawIcon, ExtractAssociatedIcon, ExtractIcon, ExtractIconExund LoadIcon verwenden alle systemweit große Symbole. Die Größe des großen Systemsymbols wird vom Videotreiber definiert und kann daher nicht geändert werden.
So rufen Sie die Größe des großen Systems ab
- Rufen Sie GetSystemMetrics mit SM _ CXICON und SM _ CYICON auf.
Die Funktionen CreateIcon, CreateIconFromResourceEx, CreateIconIndirectund SHGetFileInfo können verwendet werden, um mit Symbolen in anderen Größen als systemweit zu arbeiten.
Das kleine Shellsymbol wird im Windows-Explorer und in den allgemeinen Dialogfeldern verwendet. Derzeit ist dies standardmäßig auf die kleine Systemgröße eingestellt.
So rufen Sie die Größe des kleinen Shellsymbols ab
- Verwenden Sie die SHGetFileInfo-Funktion mit
SHGFI_SHELLICONSIZE | SHGFI_SMALLICON, um ein Handle für die Systemimageliste abzurufen. - Rufen Sie dann die ImageList _ GetIconSize-Funktion auf, um die Symbolgröße abzurufen.
Das Große Shellsymbol wird auf dem Desktop verwendet.
So ändern Sie die Größe des großen Symbols
- Klicken Sie Systemsteuerung auf Anzeigen und dann auf die Registerkarte Darstellung.
- Wählen Sie in der Liste Element die Option Symbol aus, und legen Sie dann das Feld Größe fest (diese Größe wird in der Registrierung gespeichert, unter HKEY CURRENT USER _ _ \ Systemsteuerung, Desktop \ windowMetrics \ Shell Icon Size).
- Klicken Sie auf das Pluszeichen. und aktivieren Sie dann das Kontrollkästchen Große Symbole verwenden.
So rufen Sie die Größe des großen Shellsymbols ab
- Verwenden Sie die SHGetFileInfo-Funktion mit SWSFI _ SHELLICONSIZE, um ein Handle für die Systemimageliste abzurufen.
- Rufen Sie dann die ImageList _ GetIconSize-Funktion auf, um die Symbolgröße abzurufen.
Der Startmenü verwendet entweder kleine Oder große Shellsymbole, je nachdem, ob das Kontrollkästchen Große Symbole verwenden aktiviert ist.
Ihre Anwendung sollte Gruppen von Symbolbildern in den folgenden Größen bereitstellen:
- 48 x 48, 256 Farben
- 32 x 32, 16 Farben
- 16 x 16 Pixel, 16 Farben
Legen Sie beim Ausfüllen der WNDCLASSEX-Struktur für die Registrierung Ihrer Fensterklasse den hIcon-Member auf das 32x32-Symbol und den hIconSm-Member auf das 16x16-Symbol fest. Weitere Informationen zu Klassensymbolen finden Sie unter Klassensymbole.
Symbolerstellung
Standardsymbole sind vordefiniert, sodass sie nicht erstellt werden müssen. Um ein Standardsymbol zu verwenden, kann eine Anwendung ihr Handle mithilfe der LoadImage-Funktion abrufen. Ein Symbolhandle ist ein eindeutiger Wert des HICON-Typs, der ein Standardsymbol oder ein benutzerdefiniertes Symbol identifiziert.
Um ein benutzerdefiniertes Symbol für eine Anwendung zu erstellen, verwenden Sie in der Regel eine Grafikanwendung und schließen die ICON-Ressource in die Ressourcendefinitionsdatei der Anwendung ein. Zur Laufzeit können Sie LoadIcon oder LoadImage aufrufen, um ein Handle für das Symbol abzurufen. Eine Symbolressource kann eine Gruppe von Bildern für mehrere verschiedene Anzeigegeräte enthalten. LoadIcon und LoadImage wählen automatisch das am besten geeignete Symbol aus der Gruppe für das aktuelle Anzeigegerät aus.
Eine Anwendung kann auch zur Laufzeit ein benutzerdefiniertes Symbol erstellen, indem sie die CreateIconIndirect-Funktion verwendet, die ein Symbol basierend auf dem Inhalt einer ICONINFO-Struktur erstellt. Die GetIconInfo-Funktion füllt die Struktur mit den Hot-Spot-Koordinaten und Informationen zur Bitmaskenbitmap und Farbbitmap für das Symbol.
Anwendungen sollten benutzerdefinierte Symbole als Ressourcen implementieren und LoadIcon oder LoadImageverwenden, anstatt das Symbol zur Laufzeit zu erstellen. Die Verwendung von Symbolressourcen vermeidet Geräteabhängigkeit, vereinfacht die Lokalisierung und ermöglicht Anwendungen das Freigeben von Symbolformen.
Mit der CreateIconFromResourceEx-Funktion kann eine Anwendung die Ressourcen des Systems durchsuchen und Symbole und Cursor basierend auf Ressourcendaten erstellen. CreateIconFromResourceEx erstellt ein Symbol basierend auf binären Ressourcendaten aus anderen ausführbaren Dateien oder DLLs. Eine Anwendung muss dieser Funktion Aufrufe der LookupIconIdFromDirectoryEx-Funktion und mehrerer Ressourcenfunktionen voran stellen. LookupIconIdFromDirectoryEx gibt den Bezeichner der am besten geeigneten Symboldaten für das aktuelle Anzeigegerät zurück.
Symbolanzeige
Sie können das Bild für ein Symbol mithilfe der GetIconInfo-Funktion abrufen und es mithilfe der DrawIconEx-Funktion zeichnen. Um das Standardbild für ein Symbol zu zeichnen, geben Sie das DI _ COMPAT-Flag im Aufruf von DrawIconEx an. Wenn Sie das _ DI-COMPAT-Flag nicht angeben, zeichnet DrawIconEx das Symbol mithilfe des vom Benutzer angegebenen Bilds.
Wenn das System ein Symbol anzeigt, muss es das entsprechende Symbolbild aus der .exe oder .dll-Datei extrahieren. Das System verwendet die folgenden Schritte, um das Symbolbild auszuwählen:
- Wählen Sie die RT _ GROUP _ ICON-Ressource aus. Wenn mehr als eine solche Ressource vorhanden ist, verwendet das System die erste Ressource, die in der Ressourcenkrüge aufgeführt ist.
- Wählen Sie das entsprechende _ RT-SYMBOLbild aus der RT GROUP _ _ ICON-Ressource aus. Wenn mehrere Images vorhanden sind, verwendet das System die folgenden Kriterien, um ein Image auszuwählen:
-
- Das Bild, das der angeforderten Größe am nächsten liegt, wird ausgewählt.
- Wenn mindestens zwei Bilder dieser Größe vorhanden sind, wird das Bild ausgewählt, das der Farbtiefe der Anzeige entspricht.
- Wenn keine Bilder genau mit der Farbtiefe der Anzeige übereinstimmen, wird das Bild mit der größten Farbtiefe ausgewählt, die die Farbtiefe der Anzeige nicht überschreitet. Wenn alle die Farbtiefe überschreiten, wird die mit der niedrigsten Farbtiefe ausgewählt.
-
Hinweis
Das System behandelt alle Farbtiefe von 8 oder mehr BPP als gleich. Daher bietet es keinen Vorteil, ein Bild mit 16 x 16 Farben mit 256 Farben und ein Bild mit 16 x 16 Farben in derselben Ressource zu verwenden– das System wählt einfach das erste Bild aus, das es findet. Wenn sich die Anzeige im 8-BPP-Modus befindet, wählt das System ein Symbol mit 16 Farben anstelle eines Symbols mit 256 Farben aus und zeigt alle Symbole mit der Standardpalette des Systems an.
Um ein animiertes Symbol anzuzeigen, verwenden Sie ein statisches Steuerelement, wie im folgenden Codefragment gezeigt.
hIcon = LoadImage(NULL, "ico.ani", IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
SendMessage( hStatic, STM_SETIMAGE, IMAGE_ICON, (LPARAM)(UINT)hIcon);
Symbolvernichtung
Wenn eine Anwendung kein Symbol mehr benötigt, das sie mit der CreateIconIndirect-Funktion erstellt hat, sollte sie das Symbol zerstören. Die DestroyIcon-Funktion zerstört das Symbolhandle und gibt den vom Symbol verwendeten Arbeitsspeicher frei. Anwendungen sollten diese Funktion nur für Symbole verwenden, die mit CreateIconIndirect erstellt wurden. es ist nicht erforderlich, andere Symbole zu zerstören.
Symbolduplizierung
Die CopyIcon-Funktion kopiert ein Symbolhandle. Dadurch kann eine Anwendung oder DLL ein eigenes Handle für ein Symbol erhalten, das sich im Besitz eines anderen Moduls befindet. Wenn das andere Modul freigegeben wird, kann die Anwendung, die das Symbol kopiert hat, das Symbol weiterhin verwenden.
Die CopyImage-Funktion erstellt ein neues Symbol basierend auf dem angegebenen Quellsymbol. Das neue Symbol kann größer oder kleiner als das Quellsymbol sein.
Informationen zum Hinzufügen, Entfernen oder Ersetzen von Symbolressourcen in ausführbaren Dateien (.exe) finden Sie unter Ressourcen.
Die DuplicateIcon-Funktion erstellt eine tatsächliche Kopie des Symbols.