Delen via


Over statische bedieningselementen

Toepassingen gebruiken vaak statische besturingselementen om andere besturingselementen te labelen of om een groep besturingselementen te scheiden. Hoewel statische besturingselementen onderliggende vensters zijn, kunnen ze niet worden geselecteerd. Daarom kunnen ze de toetsenbordfocus niet ontvangen en kunnen ze geen toetsenbordinterface hebben. Een statisch controle-element met de stijl SS_NOTIFY ontvangt muisinvoer en meldt het bovenliggende venster wanneer de gebruiker op het controle-element klikt of dubbelklikt. Statische besturingselementen behoren tot de klasse STATIC-venster.

Hoewel statische besturingselementen kunnen worden gebruikt in overlappende vensters, pop-upvensters en kindvensters, zijn ze ontworpen voor gebruik in dialoogvensters, waarbij hun gedrag door het systeem wordt gestandaardiseerd. Door statische besturingselementen buiten dialoogvensters te gebruiken, verhoogt een ontwikkelaar het risico dat de toepassing zich mogelijk op een niet-standaard manier gedraagt. Normaal gesproken gebruikt een ontwikkelaar statische besturingselementen in dialoogvensters of gebruikt de stijl SS_OWNERDRAW om aangepaste statische besturingselementen te maken.

De volgende onderwerpen worden in deze sectie besproken.

Typen statische besturingselementen

Er zijn vier typen statische besturingselementen. Elk type heeft een of meer statische besturingsstijlen.

Eenvoudige grafische statische bedieningselement

Een eenvoudig statisch besturingselement voor afbeeldingen geeft een frame of een opgevulde rechthoek weer. Een frame kan worden getekend in een aantal stijlen, inclusief zwart, grijs of wit. Daarnaast kan een frame worden getekend met een geƫtste stijl om het een driedimensionaal uiterlijk te geven. De framestijlen omvatten SS_BLACKFRAME, SS_GRAYFRAME, SS_WHITEFRAME, SS_ETCHEDHORZ, SS_ETCHEDVERT en SS_ETCHEDFRAME.

Een rechthoek kan worden gevuld met kleur in een van de drie stijlen: zwart, grijs of wit. Deze stijlen worden gedefinieerd door de constanten SS_BLACKRECT, SS_GRAYRECT en SS_WHITERECT.

De grafische stijlen kunnen niet worden gecombineerd.

Statische tekstcontrole

In een statisch besturingselement voor tekst wordt tekst in een rechthoek in een van de vijf stijlen weergegeven:

  • links uitgelijnd zonder tekstterugloop
  • links uitgelijnd met de tekstafbreking
  • Gecentreerd
  • rechts uitgelijnd
  • eenvoudig

Deze stijlen worden gedefinieerd door respectievelijk de constanten SS_LEFTNOWORDWRAP, SS_LEFT, SS_CENTER, SS_RIGHT en SS_SIMPLE. Het systeem rangschikt de tekst in deze besturingselementen op vooraf gedefinieerde manieren, met uitzondering van 'eenvoudige' tekst, die niet opnieuw is gerangschikt.

Een toepassing kan de tekst in een statisch besturingselement voor tekst op elk gewenst moment wijzigen met behulp van de functie SetWindowText of het WM_SETTEXT bericht.

Het systeem geeft zoveel mogelijk tekst weer in het statische controle-element en knipt wat niet past. Als u een juiste grootte voor het besturingselement wilt berekenen, haalt u de metrische lettertypegegevens voor de tekst op. Voor meer informatie over lettertypen en lettertypemetrieken, zie Lettertypen en tekst.

Standaard kan de venstertekst voor een statisch besturingselement, net als voor andere besturingselementen, een ampersand bevatten waarmee het volgende teken wordt gedefinieerd als de sneltoets voor het besturingselement (of, in het geval van de meeste statische besturingselementen, voor het besturingselement dat het labelt, het volgende besturingselement in de tabvolgorde). Als u ampersands in de tekst wilt weergeven in plaats van ze te gebruiken om snelkoppelingen te definiƫren, neemt u de SS_NOPREFIX stijl op.

Statische beeldcontrole

Een statisch besturingselement voor afbeeldingen kan bitmaps, pictogrammen (inclusief pictogrammen met animatie) of verbeterde metabestanden weergeven. Het type afbeelding dat door een bepaald statisch besturingselement wordt weergegeven, is afhankelijk van de stijl van het besturingselement: SS_BITMAP, SS_ICON of SS_ENHMETAFILE. Een toepassing geeft de stijl aan wanneer het besturingselement wordt gemaakt en geeft ook een ingang op voor de bitmap, het pictogram of het metabestand voor het besturingselement dat moet worden weergegeven. Nadat het besturingselement is gemaakt, kan een toepassing een andere afbeelding koppelen aan het besturingselement door het een STM_SETIMAGE bericht te verzenden, waarbij een ingang naar het nieuwe afbeeldingsobject wordt opgegeven. Een toepassing kan een ingang ophalen naar het grafische object dat momenteel is gekoppeld aan een statisch besturingselement door het een STM_GETIMAGE bericht te verzenden. Een toepassing verzendt berichten naar een statisch besturingselement met behulp van defunctieSendDlgItemMessage.

Statisch besturingselement Owner-Drawn

Met behulp van de stijl SS_OWNERDRAW kan een toepassing verantwoordelijkheid nemen voor het schilderen van een statisch besturingselement. Het bovenliggende venster van een door de eigenaar getekend statisch besturingselement (de eigenaar) ontvangt een WM_DRAWITEM bericht wanneer het statische besturingselement moet worden geschilderd. Het bericht bevat een aanwijzer naar een DRAWITEMSTRUCT structuur die informatie bevat die het eigenaarvenster gebruikt bij het tekenen van het besturingselement.

Standaardberichtverwerking van statische besturing

De vensterprocedure voor de vooraf gedefinieerde klasse statisch besturingselement voert standaardverwerking uit voor alle berichten die niet door de statische besturingsprocedure worden verwerkt. Wanneer het statische besturingselement FALSE voor een bericht retourneert, controleert de vooraf gedefinieerde vensterprocedure de berichten en voert de standaardactie uit die wordt beschreven in de volgende tabel. In de tabel is een statisch besturingselement voor tekst een statisch besturingselement met de stijl SS_LEFTNOWORDWRAP, SS_LEFT, SS_CENTER, SS_RIGHT of SS_SIMPLE.

Bericht Standaard actie
WM_CREATE Laadt het afbeeldingsobject en past de grootte van het venster aan aan de grootte van het object, voor statische grafische bedieningscomponenten. Neemt geen actie voor andere statische besturingselementen.
WM_DESTROY Verwijdert en vernietigt elk grafisch object, voor statische grafische besturingselementen. Neemt geen actie voor andere statische besturingselementen.
WM_ENABLE Hiermee worden zichtbare statische besturingselementen opnieuw geschilderd.
WM_ERASEBKGND Retourneert TRUE, waarmee wordt aangegeven dat het besturingselement de achtergrond wist.
WM_GETDLGCODE Retourneert DLGC_STATIC.
WM_GETFONT Retourneert een referentie naar het lettertype voor statische tekstelementen.
WM_GETTEXT Retourneert het aantal gekopieerde tekens.
WM_GETTEXTLENGTH Retourneert de lengte, in tekens, van de tekst voor een statisch besturingselement voor tekst.
WM_LBUTTONDBLCLK Stuurt een meldingscode naar het bovenliggende venster, STN_DBLCLK, als de stijl van het besturingselement SS_NOTIFY is.
WM_LBUTTONDOWN Stuurt het bovenliggende venster een STN_CLICKED meldingscode, indien de controlestijl SS_NOTIFY is.
WM_NCLBUTTONDBLCLK Verstuur een STN_DBLCLK meldingscode naar het bovenliggende venster als de stijl van het besturingselement SS_NOTIFY is.
WM_NCLBUTTONDOWN Verzendt het bovenliggende venster een STN_CLICKED meldingscode als de stijl van de controle is SS_NOTIFY.
WM_NCHITTEST Retourneert HTCLIENT als de besturingsstijl is SS_NOTIFY; anders retourneert het HTTRANSPARENT.
WM_PAINT Hiermee wordt het besturingselement opnieuw geschilderd.
WM_SETFONT Hiermee stelt u het lettertype en de repaints in voor statische besturingselementen voor tekst.
WM_SETTEXT Hiermee stelt u de tekst in en tekent u deze opnieuw voor statische tekstbesturingselementen.

 

De vooraf gedefinieerde vensterprocedure geeft alle andere berichten door aan DefWindowProc- voor standaardverwerking.