Dela via


Knapptyper

Det finns flera typer av knappar och en eller flera knappformat för att skilja mellan knappar av samma typ.

I det här dokumentet beskrivs följande avsnitt.

Knapptyper och formatmallar

En knapp tillhör en typ och kan ha ytterligare format som påverkar dess utseende och beteende. En tabell med knappformat finns i knappformat.

Följande skärmbild visar de olika typerna av knappar.

skärmbild av en dialogruta som visar exempel på åtta typer av knappar

Skärmbilden visar hur knappar kan visas i Windows Vista. Utseendet varierar beroende på olika versioner av operativsystemet och enligt det tema som användaren har angett.

Observera följande punkter om bilden:

  • Kryssrutan med tre tillstånd visas i obestämt tillstånd. När kryssrutan är markerad eller avmarkerad ser den ut som en normal kryssruta.
  • Den stora push-knappen har ställts in på push-läget programmatiskt (genom att skicka BM_SETSTATE meddelande), så att det behåller sitt utseende även när det inte klickas.
  • I det visuella format som visas växlar bakgrunden för standardknappen (eller en annan tryckknapp som har indatafokus) mellan blått och grått.

Kryssrutorna

En kryssruta består av en kvadratruta och en programdefinierad etikett, ikon eller bitmapp som anger ett val som användaren kan göra genom att välja knappen. Program visar vanligtvis kryssrutor så att användaren kan välja ett eller flera alternativ som inte utesluter varandra.

En kryssruta kan vara en av fyra formatmallar: standard, automatisk, tre-tillstånd och automatiskt tre-tillstånd, enligt definitionen av konstanterna BS_CHECKBOX, BS_AUTOCHECKBOX, BS_3STATEoch BS_AUTO3STATE, respektive. Varje formatmall kan förutsätta två bocktillstånd: markerad (en bockmarkering i rutan) eller avmarkerad (ingen bockmarkering). Dessutom kan en kryssruta med tre tillstånd förutsätta ett obestämt tillstånd (en skuggad ruta i kryssrutan), vilket kan innebära att användaren inte har gjort något val. Om du upprepade gånger klickar på en standard- eller automatisk kryssruta växlar den från markerad till avmarkerad och tillbaka igen. Om du upprepade gånger klickar på en kryssruta med tre tillstånd växlar den från markerad till avmarkerad för att obestämda och upprepar sedan cykeln.

När användaren klickar på en kryssruta (oavsett format) får kryssrutan tangentbordsfokus. Systemet skickar kryssrutans överordnade fönster ett WM_COMMAND meddelande som innehåller BN_CLICKED meddelandekod. Det överordnade fönstret behöver inte hantera det här meddelandet om det kommer från en automatisk kryssruta eller en automatisk kryssruta med tre tillstånd, eftersom systemet automatiskt anger bocktillståndet för dessa formatmallar. Men det överordnade fönstret måste hantera meddelandet om det kommer från en icke-automatisk kryssruta eller kryssruta med tre tillstånd, eftersom det överordnade fönstret ansvarar för att ange kryssrutan för dessa formatmallar. Oavsett kryssruteformatet ommålar systemet automatiskt kryssrutan när dess tillstånd har ändrats.

Programmet kan kontrollera tillståndet för en kryssruta med hjälp av funktionen IsDlgButtonChecked.

Grupprutor

En gruppruta är en rektangel som omger en uppsättning kontroller, till exempel kryssrutor eller alternativknappar, med en programdefinierad textetikett i det övre vänstra hörnet. Det enda syftet med en gruppruta är att organisera kontroller som är relaterade till ett gemensamt syfte (vilket vanligtvis anges av etiketten). Grupprutan har bara ett format som definieras av konstanten BS_GROUPBOX. Eftersom det inte går att markera en gruppruta har den inget bocktillstånd, fokustillstånd eller push-tillstånd.

Tryckknappar

En push-knapp är en rektangel som innehåller en programdefinierad textetikett, en ikon eller en bitmapp som anger vad knappen gör när användaren väljer den.

En push-knapp kan vara en av två formatmallar, standardformat eller standardformat, som definieras av konstanterna BS_PUSHBUTTON och BS_DEFPUSHBUTTON. En standardknapp används vanligtvis för att starta en åtgärd. Det får tangentbordsfokus när användaren klickar på det. En standardknapp används vanligtvis för att ange det vanligaste alternativet eller standardalternativet, till exempel att stänga dialogrutan. Det är en knapp som användaren kan välja genom att helt enkelt trycka på RETUR när ingen annan knapp i dialogrutan har indatafokus.

När användaren klickar på en push-knapp får den tangentbordsfokus. Systemet skickar knappens överordnade fönster ett WM_COMMAND meddelande som innehåller BN_CLICKED meddelandekod.

Knappen split är en speciell typ av push-knapp som introducerades i Windows Vista och version 6.00. En delningsknapp är uppdelad i två delar. Huvuddelen fungerar som en vanlig eller standardknapp. Den andra delen har en pil som pekar nedåt. Vanligtvis visas en meny när pilen klickas.

En delningsknapp har formatet BS_SPLITBUTTON eller BS_DEFSPLITBUTTON om det är standardknappen i en dialogruta. Du kan ändra knappens utseende med hjälp av BCM_SETSPLITINFO-meddelandet eller motsvarande Button_SetSplitInfo makro.

När användaren klickar på huvuddelen av delningsknappen skickar den ett BN_CLICKED meddelande precis som en vanlig tryckknapp. Men när användaren klickar på nedåtpilen skickar den ett BCN_DROPDOWN meddelande. Det är programmets ansvar att visa en meny som svar på BCN_DROPDOWN.

Windows Vista och version 6.00 också infört en annan typ av tryckknapp, kommandolänk. Visuellt sett skiljer sig en kommandolänk mycket från en vanlig push-knapp, men den har samma funktioner. En kommandolänk visar vanligtvis en pilikon, en textrad och ytterligare text i ett mindre teckensnitt.

Alternativknappar

En alternativknapp (kallas även alternativknapp) består av en rund knapp och en programdefinierad etikett, ikon eller bitmapp som anger ett val som användaren kan göra genom att välja knappen. Ett program använder vanligtvis alternativknappar i en gruppruta för att göra det möjligt för användaren att välja ett av en uppsättning relaterade men ömsesidigt uteslutande alternativ.

En alternativknapp kan vara en av två formatmallar: standard eller automatisk, enligt definitionen av formatkonstanterna BS_RADIOBUTTON och BS_AUTORADIOBUTTON. Varje formatmall kan förutsätta två kontrolltillstånd: markerad (en punkt i knappen) eller avmarkerad (ingen punkt i knappen).

När användaren väljer något av tillstånden får alternativknappen tangentbordsfokus. Systemet skickar knappens överordnade fönster ett WM_COMMAND meddelande som innehåller BN_CLICKED-meddelandekoden. Det överordnade fönstret behöver inte hantera det här meddelandet om det kommer från en automatisk alternativknapp, eftersom systemet automatiskt anger kontrolltillståndet för det formatet. Men det överordnade fönstret bör hantera meddelandet om det kommer från en icke-automatisk alternativknapp, eftersom det överordnade fönstret ansvarar för att ange kontrolltillståndet för det formatet. Oavsett alternativknappsformatet ommålar systemet automatiskt knappen när dess tillstånd ändras.

Alternativknappar ordnas i grupper och endast en knapp i gruppen kan kontrolleras när som helst. Om flaggan WS_GROUP har angetts för någon alternativknapp är den knappen den första knappen i en grupp och alla knappar som följer den direkt i tabbordningen (men inte själva har flaggan WS_GROUP) ingår i gruppen. Om inga alternativknappar har flaggan WS_GROUP behandlas alla alternativknappar i dialogrutan som en enda grupp.

Programmet kan kontrollera om en alternativknapp kontrolleras med hjälp av funktionen IsDlgButtonChecked.

referens

knappformat

konceptuell

med knappar