Informationen zu statischen Steuerelementen

Anwendungen verwenden häufig statische Steuerelemente, um andere Steuerelemente zu bezeichnen oder eine Gruppe von Steuerelementen zu trennen. Obwohl statische Steuerelemente untergeordnete Fenster sind, können sie nicht ausgewählt werden. Daher können sie den Tastaturfokus nicht empfangen und können keine Tastaturschnittstelle haben. Ein statisches Steuerelement mit dem _ SS NOTIFY-Stil empfängt Mauseingaben und benachrichtigt das übergeordnete Fenster, wenn der Benutzer auf das Steuerelement klickt oder doppelklickt. Statische Steuerelemente gehören zur STATIC-Fensterklasse.

Obwohl statische Steuerelemente in überlappenden, popupbasierten und untergeordneten Fenstern verwendet werden können, sind sie für die Verwendung in Dialogfeldern konzipiert, in denen das System ihr Verhalten standardisiert. Durch die Verwendung statischer Steuerelemente außerhalb von Dialogfeldern erhöht ein Entwickler das Risiko, dass sich die Anwendung möglicherweise nicht dem Standard gemäß verhält. In der Regel verwendet ein Entwickler entweder statische Steuerelemente in Dialogfeldern oder den SS _ OWNERDRAW-Stil, um benutzerdefinierte statische Steuerelemente zu erstellen.

Die folgenden Themen werden in diesem Abschnitt erläutert.

Statische Steuerelementtypen

Es gibt vier Typen von statischen Steuerelementen. Jeder Typ verfügt über einen oder mehrere statische Steuerelementstile.

Einfaches statisches Grafiksteuerelement

Ein einfaches statisches Grafiksteuerelement zeigt einen Rahmen oder ein ausgefülltes Rechteck an. Ein Frame kann in einer Reihe von Stilen gezeichnet werden, einschließlich Schwarz, Grau oder Weiß. Darüber hinaus kann ein Frame mit einem geätzten Stil gezeichnet werden, um ihm eine dreidimensionale Darstellung zu verleihen. Zu den Rahmenstilen gehören SS _ BLACKFRAME, SS _ GRAYFRAME, SS _ WHITEFRAME, SS _ ETCHEDHORZ, SS _ ETCHEDVERT und SS _ ETCHEDFRAME.

Ein Rechteck kann in einem von drei Formaten mit Farbe gefüllt werden: schwarz, grau oder weiß. Diese Stile werden durch die Konstanten SS _ BLACKRECT, SS _ GRAYRECT und SS _ WHITERECT definiert.

Die Grafikstile können nicht kombiniert werden.

Statisches Textsteuerelement

Ein statisches Textsteuerelement zeigt Text in einem Rechteck in einem von fünf Formaten an:

  • Linksbündig ausgerichtet ohne Zeilenumbruch
  • Linksbündig ausgerichtet mit Zeilenumbruch
  • zentriert
  • rechtsbündig
  • Einfach

Diese Stile werden durch die Konstanten SS _ LEFTNOWORDWRAP, SS _ LEFT, SS _ CENTER, SS _ RIGHT bzw. SS _ SIMPLE definiert. Das System ordnet den Text in diesen Steuerelementen auf vordefinierte Weise neu an, mit Ausnahme von "einfachem" Text, der nicht neu angeordnet wird.

Eine Anwendung kann den Text in einem statischen Textsteuerelement jederzeit mithilfe der SetWindowText-Funktion oder der WM _ SETTEXT-Nachricht ändern.

Das System zeigt so viel Text wie im statischen Steuerelement an und klammern, was nicht passt. Um eine geeignete Größe für das Steuerelement zu berechnen, rufen Sie die Schriftartmetriken für den Text ab. Weitere Informationen zu Schriftarten und Schriftartmetriken finden Sie unter Schriftarten und Text.

Standardmäßig kann der Fenstertext für ein statisches Steuerelement wie bei anderen Steuerelementen ein ampersand enthalten, das das folgende Zeichen als Tastenkombination für das Steuerelement definiert (oder im Fall der meisten statischen Steuerelemente für das Steuerelement, das es beschriftet, das das nächste Steuerelement in der Registerkartenreihenfolge ist). Wenn Sie ampersands im Text anzeigen möchten, anstatt sie zum Definieren von Verknüpfungen zu verwenden, schließen Sie den SS _ NOPREFIX-Stil ein.

Statisches Bildsteuerelement

Ein statisches Bildsteuerelement kann Bitmaps, Symbole (einschließlich animierter Symbole) oder erweiterte Metadateien anzeigen. Die Art der Grafik, die ein bestimmtes statisches Steuerelement anzeigt, hängt vom Stil des Steuerelements ab: SS _ BITMAP, SS _ ICON oder SS _ ENHMETAFILE. Eine Anwendung gibt den Stil an, wenn sie das Steuerelement erstellt, und gibt auch ein Handle für die Bitmap, das Symbol oder die Metadatei an, die das Steuerelement anzeigen soll. Nachdem das Steuerelement erstellt wurde, kann eine Anwendung dem Steuerelement eine andere Grafik zuordnen, indem sie eine STM _ SETIMAGE-Nachricht sendet und ein Handle für das neue Grafikobjekt angibt. Eine Anwendung kann ein Handle für das Grafikobjekt abrufen, das derzeit einem statischen Steuerelement zugeordnet ist, indem sie eine STM _ GETIMAGE-Nachricht sendet. Eine Anwendung sendet Nachrichten mithilfe der SendDlgItemMessage-Funktion an ein statisches Steuerelement.

Owner-Drawn Statisches Steuerelement

Mithilfe des SS _ OWNERDRAW-Stils kann eine Anwendung die Verantwortung für das Zeichnen eines statischen Steuerelements übernehmen. Das übergeordnete Fenster eines vom Besitzer gezeichneten statischen Steuerelements (dessen Besitzer) empfängt immer dann eine WM _ DRAWITEM-Meldung, wenn das statische Steuerelement gezeichnet werden muss. Die Nachricht enthält einen Zeiger auf eine DRAWITEMSTRUCT-Struktur, die Informationen enthält, die das Besitzerfenster beim Zeichnen des Steuerelements verwendet.

Standardnachrichtenverarbeitung für statische Steuerungen

Die Fensterprozedur für die vordefinierte statische Steuerelementfensterklasse führt die Standardverarbeitung für alle Nachrichten durch, die von der statischen Steuerelementprozedur nicht verarbeitet werden. Wenn das statische Steuerelement FALSE für eine Nachricht zurückgibt, überprüft die vordefinierte Fensterprozedur die Meldungen und führt die in der folgenden Tabelle beschriebene Standardaktion aus. In der Tabelle ist ein statisches Textsteuerelement ein statisches Steuerelement mit dem Stil SS _ LEFTNOWORDWRAP, SS _ LEFT, SS _ CENTER, SS _ RIGHT oder SS _ SIMPLE.

Message Standardaktion
WM _ CREATE Lädt das Grafikobjekt und legt die Größe des Fensters für grafische statische Steuerelemente auf die Größe des Objekts fest. Führt keine Aktion für andere statische Steuerelemente aus.
WM _ DESTROY Gibt grafikgrafische Objekte für grafische statische Steuerelemente frei und zerstört sie. Führt keine Aktion für andere statische Steuerelemente aus.
WM _ ENABLE Bemalt sichtbare statische Steuerelemente neu.
WM _ ERASEBKGND Gibt TRUE zurück, was angibt, dass das Steuerelement den Hintergrund löscht.
WM _ GETDLGCODE Gibt DLGC _ STATIC zurück.
WM _ GETFONT Gibt ein Handle für die Schriftart für statische Textsteuerelemente zurück.
WM _ GETTEXT Gibt die Anzahl der kopierten Zeichen zurück.
WM _ GETTEXTLENGTH Gibt die Länge des Texts für ein statisches Textsteuerelement in Zeichen zurück.
WM _ LBUTTONDBLCLK Sendet dem übergeordneten Fenster einen STN DBLCLK-Benachrichtigungscode, _ wenn der Steuerelementstil SS _ NOTIFY lautet.
WM _ LBUTTONDOWN Sendet dem übergeordneten Fenster einen STN CLICKED-Benachrichtigungscode, _ wenn der Steuerelementstil SS _ NOTIFY lautet.
WM _ NCLBUTTONDBLCLK Sendet dem übergeordneten Fenster einen STN DBLCLK-Benachrichtigungscode, _ wenn der Steuerelementstil SS _ NOTIFY lautet.
WM _ NCLBUTTONDOWN Sendet dem übergeordneten Fenster einen STN CLICKED-Benachrichtigungscode, _ wenn der Steuerelementstil SS _ NOTIFY lautet.
WM _ NCHITTEST Gibt HTCLIENT zurück, wenn der Steuerelementstil SS _ NOTIFY ist; andernfalls wird HTTRANSPARENT zurückgegeben.
WM _ PAINT Bemalt das Steuerelement neu.
WM _ SETFONT Legt die Schriftart und die Neumalungen für statische Textsteuerelemente fest.
WM _ SETTEXT Legt den Text fest und zeichnet statische Textsteuerelemente neu.

Die vordefinierte Fensterprozedur übergibt alle anderen Nachrichten zur Standardverarbeitung an DefWindowProc.