Freigeben über


Informationen zu Symbolen

Das System verwendet Symbole in 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"

Eines der Pixel in einem Symbol ist als Hot Spot gekennzeichnet, d. h. der Punkt, den das System verfolgt und als Position des Symbols erkennt. Der Hotspot 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 Hotspot angeben.

Symboltypen

Das Betriebssystem stellt eine Reihe von Standardsymbolen bereit, die für jede Anwendung jederzeit verfügbar sind. Die Headerdateien des Software Development Kit (SDK) enthalten Bezeichner für die Systemsymbole – die Bezeichner beginnen mit dem präfix IDI_ .

Wert Bedeutung
IDI_APPLICATION
MAKEINTRESOURCE(32512)
Standardanwendungssymbol
IDI_ERROR
MAKEINTRESOURCE(32513)
Fehlersymbol
IDI_QUESTION
MAKEINTRESOURCE(32514)
Fragezeichensymbol
IDI_WARNING
MAKEINTRESOURCE(32515)
Symbol "Warnung"
IDI_INFORMATION
MAKEINTRESOURCE(32516)
Symbol "Information"
IDI_WINLOGO
MAKEINTRESOURCE(32517)
Windows-Logosymbol
IDI_SHIELD
MAKEINTRESOURCE(32518)
Symbol "Sicherheitsschild"

Informationen zur empfohlenen Verwendung von Standardsymbolen finden Sie unter Richtlinien .

Außerdem steht ab Windows Vista ein zusätzlicher Satz von Standardsymbolen der Systemshell über die SHGetStockIconInfo-Methode zur Verfügung.

Benutzerdefinierte Symbole sind für die Verwendung in einer bestimmten Anwendung konzipiert und können ein beliebiges Design sein. Benutzer können benutzerdefinierte Symbole aus Dateien laden oder zur Laufzeit erstellen. Im Folgenden sind mehrere benutzerdefinierte Symbole aufgeführt.

mehrere benutzerdefinierte Symbole

Symbolgrößen

Das System verwendet vier Symbolgrößen:

  • System klein
  • System groß
  • Shell klein
  • Shell groß
  • Jumbo (starte Windows Vista)

Das kleine Systemsymbol wird im Fenster Untertitel angezeigt.

Empfehlungen zu bevorzugten Symbolgrößen für Ihre Anwendung finden Sie unter Symbolskalierung .

So ändern Sie die Größe des kleinen Systemsymbols

  1. Klicken Sie Systemsteuerung auf Anzeigen und dann auf die Registerkarte Darstellung.
  2. Wählen Sie in der Liste Element die Option Untertitelschaltflächen aus, und legen Sie dann das Feld Größe fest.

So rufen Sie die Größe des kleinen Systemsymbols ab

Das systemgroße Symbol wird hauptsächlich von Anwendungen verwendet, aber es wird auch im Dialogfeld ALT+TAB angezeigt. Die Funktionen CreateIconFromResource, DrawIcon, ExtractAssociatedIcon, ExtractIcon, ExtractIconEx und LoadIcon verwenden systemgroße Symbole. Die Größe des systemweiten Symbols wird vom Videotreiber definiert und kann daher nicht geändert werden.

So rufen Sie die Größe des systemweiten Symbols ab

Die Funktionen CreateIcon, CreateIconFromResourceEx, CreateIconIndirect und SHGetFileInfo können verwendet werden, um mit Symbolen in anderen Größen als systemgroß zu arbeiten.

Das kleine Shellsymbol wird in der Windows-Explorer und den allgemeinen Dialogfeldern verwendet. Derzeit ist dies standardmäßig auf die kleine Systemgröße festgelegt.

So rufen Sie die Größe des kleinen Shellsymbols ab

  1. Verwenden Sie die SHGetFileInfo-Funktion mit SHGFI_SHELLICONSIZE | SHGFI_SMALLICON , um ein Handle für die Systemimageliste abzurufen.
  2. 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

  1. Klicken Sie Systemsteuerung auf Anzeigen, und klicken Sie dann auf die Registerkarte Darstellung.
  2. Wählen Sie in der Liste Elementdie Option Symbol aus, und legen Sie dann das Feld Größe fest (diese Größe wird in der Registrierung gespeichert, unter HKEY_CURRENT_USER\Control Panel Desktop\WindowMetrics\Shell Icon Size).
  3. Klicken Sie auf die Registerkarte Plus! , und aktivieren Sie dann das Kontrollkästchen Große Symbole verwenden .

So rufen Sie die Größe des großen Shellsymbols ab

  1. Verwenden Sie die SHGetFileInfo-Funktion mit SHGFI_SHELLICONSIZE , um ein Handle für die Systembildliste abzurufen.
  2. Rufen Sie dann die ImageList_GetIconSize-Funktion auf, um die Symbolgröße abzurufen.

Legen Sie beim Ausfüllen der WNDCLASSEX-Struktur , die zum Registrieren Ihrer Fensterklasse verwendet werden soll, den hIcon-Member auf das große Systemsymbol (in der Regel 32x32) und den hIconSm-Member auf das kleine Systemsymbol (in der Regel 16x16) fest. Weitere Informationen zu Klassensymbolen finden Sie unter Klassensymbole.

Symbolerstellung

Standardsymbole sind vordefiniert, sodass es nicht erforderlich ist, sie zu erstellen. 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 fügen 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 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 über die Bitmaskenbitbit und die Farbbitbit für das Symbol auf.

Anwendungen sollten benutzerdefinierte Symbole als Ressourcen implementieren und LoadIcon oder LoadImage verwenden, anstatt das Symbol zur Laufzeit zu erstellen. Die Verwendung von Symbolressourcen vermeidet Geräteabhängigkeiten, vereinfacht die Lokalisierung und ermöglicht Es Anwendungen, Symbolformen gemeinsam zu nutzen.

Die CreateIconFromResourceEx-Funktion ermöglicht es einer Anwendung, die Ressourcen des Systems zu durchsuchen und Symbole und Cursor basierend auf Ressourcendaten zu erstellen. CreateIconFromResourceEx erstellt ein Symbol basierend auf binären Ressourcendaten aus anderen ausführbaren Dateien oder DLLs. Eine Anwendung muss dieser Funktion vorangehen, wobei die LookupIconIdFromDirectoryEx-Funktion und einige der Ressourcenfunktionen aufgerufen werden. 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 mit der DrawIconEx-Funktion zeichnen. Um das Standardbild für ein Symbol zu zeichnen, geben Sie das flag DI_COMPAT im Aufruf von DrawIconEx an. Wenn Sie das DI_COMPAT-Flag nicht angeben, zeichnet DrawIconEx das Symbol mit dem vom Benutzer angegebenen Bild.

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:

  1. Wählen Sie die RT_GROUP_ICON-Ressource aus. Wenn mehr als eine solche Ressource vorhanden ist, verwendet das System die erste Ressource, die im Ressourcen-Scrip aufgeführt ist.
  2. Wählen Sie das entsprechende RT_ICON Bild aus der RT_GROUP_ICON-Ressource aus. Wenn mehrere Images vorhanden sind, verwendet das System die folgenden Kriterien, um ein Bild auszuwählen:
    • Das Bild, das der angeforderten Größe am nächsten ist, wird ausgewählt.
    • Wenn zwei oder mehr Bilder dieser Größe vorhanden sind, wird das Bild ausgewählt, das der Farbtiefe der Anzeige entspricht.
    • Wenn keine Bilder exakt 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 Farbtiefe mit der niedrigsten Farbtiefe ausgewählt.

Hinweis

Das System behandelt alle Farbtiefen von 8 oder mehr bpp als gleich. Daher gibt es keinen Vorteil, ein 16 x 16-Farbbild mit 256 Farben und ein 16x16-Bild mit 16 Farben in die gleiche Ressource ein- und das System wählt einfach das erste Bild aus, auf das es trifft. Wenn sich die Anzeige im 8-Bpp-Modus befindet, wählt das System ein 16-Farbsymbol über einem 256-Farbsymbol aus und zeigt alle Symbole mithilfe der Standardpalette des Systems an.

 

Verwenden Sie ein statisches Steuerelement, wie im folgenden Codefragment gezeigt, um ein animiertes Symbol anzuzeigen.

hIcon = LoadImage(NULL, "ico.ani", IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
SendMessage( hStatic, STM_SETIMAGE, IMAGE_ICON, (LPARAM)(UINT)hIcon);

Symbol "Zerstörung"

Wenn eine Anwendung kein Symbol mehr benötigt, das sie mithilfe 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 notwendig, 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 abrufen, das sich im Besitz eines anderen Moduls befindet. Wenn dann 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.