WS_GROUP-stil

Systemet flyttes som standard inndata fokus til neste eller forrige kontroll når brukeren trykker en tast. Så lenge gjeldende kontroll med inndata fokus behandler ikke disse nøklene, og den neste eller forrige kontrollen er ikke en statisk kontroll, fortsetter systemet å flytte inndata fokus gjennom alle kontroller i dialogboksen som brukeren fortsetter å trykke tastene retning.

Et program kan bruke stilen WS_GROUP til å endre denne standardvirkemåten. Stilen markerer begynnelsen av en gruppe med kontroller. Hvis en kontroll i gruppen har inndata fokus når brukeren begynner å trykke piltastene, forblir fokus i gruppen. Vanligvis den første kontrollen i en gruppe må ha WS_GROUP-stil, og alle andre kontroller i gruppen må ikke ha denne stilen. Alle kontrollene i gruppen må være sammenhengende – det vil si at de må være opprettet etter hverandre med noen mellomliggende kontroller.

Når brukeren trykker en tast, vil systemet først bestemmer om gjeldende kontroll har fokus inndata behandler piltastane. Systemet sender en WM_GETDLGCODE melding til kontrollen, og hvis kontrollen returnerer verdien DLGC_WANTARROWS, sender du nøkkelen til kontrollen. Ellers bruker systemet GetNextDlgGroupItem -funksjonen til å bestemme den neste kontrollen i gruppen.

GetNextDlgGroupItem søker kontroller i rekkefølge (eller omvendt rekkefølge) de ble opprettet. Hvis brukeren trykker høyre eller nede, returnerer GetNextDlgGroupItem neste kontroll hvis kontrollen støtter ikke har WS_GROUP stil. Ellers funksjonen Reverserer rekkefølgen av søket og returnerer den første kontrollen som har stilen WS_GROUP. Hvis brukeren trykker venstre eller opp-tasten, returnerer funksjonen den forrige kontrollen med mindre kontrollen gjeldende allerede har stilen WS_GROUP. Hvis gjeldende kontroll har denne stilen, funksjonen Reverserer rekkefølgen på søket, finner den første kontrollen har WS_GROUP-stil, og returnerer kontrollen som står umiddelbart foran plassert kontrollen.

Når systemet har neste eller forrige kontrollen, sendes det en WM_GETDLGCODE-melding til kontrollen til å bestemme hvilken kontroll. Systemet flyttes deretter inndata fokus til kontrollen hvis det ikke er en statisk kontroll. Hvis kontrollen er en automatisk alternativknappen, sender systemet en BM_CLICK melding til den. Et program kan også bruke GetNextDlgGroupItem til å Finn kontrollene i en gruppe.

Vanligvis kombinerer den første kontrollen i gruppen WS_GROUP og WS_TABSTOP stiler slik at brukeren kan flytte fra gruppe til gruppe ved hjelp av tab-tasten. Hvis gruppen inneholder alternativknapper, bør programmet bruke stilen WS_TABSTOP bare til den første kontrollen i gruppen. Systemet flyttes automatisk stilen når brukeren flytter mellom kontrollene i gruppen. Dette sikrer at inndata fokus vil alltid være på sist merkede kontrollen når brukeren flytter til gruppen ved hjelp av tab-tasten.

Index