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 erhalten und keine Tastaturschnittstelle haben. Ein statisches Steuerelement mit SS_NOTIFY Stil empfängt mauseingaben und benachrichtigt das übergeordnete Fenster, wenn der Benutzer auf das Steuerelement klickt oder doppelt darauf klickt. Statische Steuerelemente gehören zur STATIC-Fensterklasse.
Obwohl statische Steuerelemente in überlappenden, Popup- 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 standardgemäß verhält. In der Regel verwendet ein Entwickler statische Steuerelemente in Dialogfeldern oder den SS_OWNERDRAW Stil, um benutzerdefinierte statische Steuerelemente zu erstellen.
Die folgenden Themen werden in diesem Abschnitt behandelt.
Statische Steuerelementtypen
Es gibt vier Typen von statischen Steuerelementen. Jeder Typ verfügt über eine oder mehrere statische Steuerelementstile.
- Einfaches statisches Grafiksteuerelement
- Statisches Text-Steuerelement
- Statisches Bildsteuerelement
- Vom Besitzer gezeichnetes statisches Steuerelement
Einfaches statisches Grafiksteuerelement
Ein einfaches statisches Grafiksteuerelement zeigt einen Rahmen oder ein gefülltes Rechteck an. Ein Rahmen kann in einer Reihe von Stilen gezeichnet werden, einschließlich Schwarz, Grau oder Weiß. Darüber hinaus kann ein Rahmen mit einem geätzten Stil gezeichnet werden, um ihm ein dreidimensionales Aussehen zu verleihen. Die Framestile umfassen SS_BLACKFRAME, SS_GRAYFRAME, SS_WHITEFRAME, SS_ETCHEDHORZ, SS_ETCHEDVERT und SS_ETCHEDFRAME.
Ein Rechteck kann mit Farben in einer von drei Formaten 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 Text-Steuerelement
Ein statisches Textsteuerelement zeigt Text in einem Rechteck in einer von fünf Formaten an:
- Linksbündig ohne Zeilenumbruch
- Linksbündig mit Zeilenumbruch
- zentriert
- rechtsbündig
- Einfach
Diese Stile werden durch die Konstanten SS_LEFTNOWORDWRAP, SS_LEFT, SS_CENTER, SS_RIGHT und 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 möglich im statischen Steuerelement an und klammert alles ab, 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 amper- und 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 Aktivierreihenfolge ist). Wenn Sie ampersands im Text anzeigen möchten, anstatt sie zum Definieren von Tastenkombinationen zu verwenden, fügen Sie die SS_NOPREFIX-Formatvorlage ein.
Statisches Bildsteuerelement
Ein statisches Bildsteuerelement kann Bitmaps, Symbole (einschließlich animierter Symbole) oder erweiterte Metadateien anzeigen. Der Grafiktyp, den 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 das Steuerelement erstellt wird, und gibt außerdem ein Handle für die Bitmap, das Symbol oder die Metadatei an, die vom Steuerelement angezeigt werden soll. Nachdem das Steuerelement erstellt wurde, kann eine Anwendung dem Steuerelement eine andere Grafik zuordnen, indem sie eine STM_SETIMAGE Nachricht sendet und dem neuen Grafikobjekt ein Handle 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 Mithilfe der SendDlgItemMessage-Funktion Nachrichten an ein statisches Steuerelement.
statisches Owner-Drawn-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 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 Steuerelemente
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 der Formatvorlage SS_LEFTNOWORDWRAP, SS_LEFT, SS_CENTER, SS_RIGHT oder SS_SIMPLE.
Nachricht | Standardaktion |
---|---|
WM_CREATE | Lädt das Grafikobjekt und vergrößert das Fenster für statische Grafiksteuerelemente auf die Größe des Objekts. Führt keine Aktion für andere statische Steuerelemente aus. |
WM_DESTROY | Gibt jedes Grafikobjekt für statische Grafiksteuerelemente frei und zerstört es. Führt keine Aktion für andere statische Steuerelemente aus. |
WM_ENABLE | Bemalt sichtbare statische Steuerelemente erneut. |
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 ist. |
WM_LBUTTONDOWN | Sendet dem übergeordneten Fenster einen STN_CLICKED Benachrichtigungscode, wenn der Steuerelementstil SS_NOTIFY ist. |
WM_NCLBUTTONDBLCLK | Sendet dem übergeordneten Fenster einen STN_DBLCLK Benachrichtigungscode, wenn der Steuerelementstil SS_NOTIFY ist. |
WM_NCLBUTTONDOWN | Sendet dem übergeordneten Fenster einen STN_CLICKED Benachrichtigungscode, wenn der Steuerelementstil SS_NOTIFY ist. |
WM_NCHITTEST | Gibt HTCLIENT zurück, wenn das Steuerelementformat SS_NOTIFY ist. Gibt andernfalls HTTRANSPARENT zurück. |
WM_PAINT | Das Steuerelement wird neu gezeichnet. |
WM_SETFONT | Legt die Schriftart und die Neubemalungen für statische Textsteuerelemente fest. |
WM_SETTEXT | Legt den Text und die Neubemalungen für statische Textsteuerelemente fest. |
Die vordefinierte Fensterprozedur übergibt alle anderen Nachrichten zur Standardverarbeitung an DefWindowProc .