Delen via


Knopstatussen

In deze sectie wordt beschreven hoe het selecteren van een knop de status wijzigt en hoe de toepassing moet reageren.

De sectie bestaat uit de volgende onderwerpen:

Knopselectie

De gebruiker kan op drie manieren een knop selecteren: door erop te klikken met de muis, door erop te tabpen en vervolgens op enter te drukken of (als de knop deel uitmaakt van een groep die is gedefinieerd door de stijl WS_GROUP) door met de tabtoets naar de geselecteerde knop in de groep te gaan en de pijltoetsen te gebruiken om binnen die groep te navigeren. De twee tabbladenmethoden maken deel uit van de vooraf gedefinieerde toetsenbordinterface van het systeem. Zie dialoogvenstersvoor een volledige beschrijving van deze interface.

Als u een knop selecteert, worden doorgaans de volgende gebeurtenissen veroorzaakt:

  • Het systeem geeft de knop de focus op het toetsenbord.
  • De knop verzendt het bovenliggende venster een bericht om het bericht over de selectie te melden.
  • Het bovenliggende venster (of het systeem) verzendt de knop een bericht om de status te wijzigen.
  • Het bovenliggende venster (of het systeem) herschildert de knop om de nieuwe status weer te geven.

Elementen van een knopstatus

De status van een knop kan worden gekenmerkt door de focusstatus, pushstatus en controlestatus.

Focusstatus

De focusstatus is van toepassing op een selectievakje, keuzerondje, drukknop of door de eigenaar getekende knop. Een knop ontvangt de toetsenbordfocus wanneer de gebruiker deze selecteert en de focus verliest wanneer de gebruiker een ander besturingselement selecteert. Slechts één besturingselement kan de toetsenbordfocus tegelijk hebben.

Wanneer een knop de toetsenbordfocus heeft, markeert het systeem meestal de tekst, het pictogram of de bitmap van een knop door deze te omringen met een stippellijn. Bovendien heeft een drukknop een zware donkere rand wanneer deze de focus heeft. Het systeem wijzigt automatisch de markering voor een automatische knop, maar de toepassing moet de markering voor een niet-automatische knop wijzigen door berichten te verzenden.

Pushstatus

De drukstatus is van toepassing op een drukknop, selectievakje, keuzerondje of selectievakje met drie statussen, maar is niet van toepassing op andere knoppen. De drukstatus van een knop kan worden gepusht of niet gepusht. Wanneer een drukknop (of een knop met de stijl BS_PUSHLIKE) wordt ingedrukt, wordt de knop getekend als een verzonken knop. Wanneer het niet wordt gepusht, wordt het getekend als een verhoogde knop. Wanneer op een selectievakje, keuzerondje of drie statusvak wordt geklikt, wordt de achtergrond van de knop grijs weergegeven. Wanneer deze niet wordt gepusht, wordt de achtergrond van de knop niet grijs weergegeven.

Status controleren

De controlestatus is van toepassing op een selectievakje, keuzerondje of een selectievakje met drie statussen, maar is niet van toepassing op andere knoppen. De status kan worden ingeschakeld, uitgeschakeld of (voor selectievakjes met drie statussen) onbepaald. Een selectievakje wordt ingeschakeld wanneer het een vinkje bevat en wordt uitgeschakeld als dat niet het geval is. Een keuzerondje wordt gecontroleerd wanneer het een zwarte stip bevat; het wordt gewist als dat niet het geval is. Er wordt een selectievakje met drie statussen ingeschakeld wanneer het een vinkje bevat, wordt uitgeschakeld als dat niet het geval is en is onbepaald wanneer het een grijs vak bevat. Het systeem wijzigt automatisch de controlestatus van een automatische knop, maar de toepassing moet de controlestatus van een niet-automatische knop wijzigen.

Wijzigingen in een knopstatus

Wanneer de gebruiker een knop selecteert, is het over het algemeen nodig om een of meer statuselementen van de knop te wijzigen. Het systeem wijzigt automatisch de focusstatus voor alle knoptypen, de drukstatus voor drukknoppen of knoppen met de stijl BS_PUSHLIKE en de controlestatus voor alle automatische knoppen. De toepassing moet alle andere statuswijzigingen aanbrengen, rekening houdend met het type, de stijl en de huidige status van de knop. In de volgende lijst ziet u de statuselementen die voor elk knoptype moeten worden gewijzigd:

  • Een selectievakje moet de status van de controle wijzigen.
  • Een keuzerondje moet de controlestatus wijzigen. Het kan ook nodig zijn om de controlestatus van andere keuzerondjes in dezelfde groep te wijzigen om de wederzijds exclusieve aard van keuzerondjes te waarborgen.
  • Omdat de status van een door de eigenaar getekende knop afhankelijk is van de toepassing, kan de wijziging van de toepassing in de knop variëren. Er moeten geen elementen van een groepsvak worden gewijzigd, omdat gebruikers geen groepsvakken kunnen selecteren.

Een toepassing kan de status van een knop bepalen door een BM_GETCHECK of BM_GETSTATE bericht te verzenden; de toepassing kan de status van een knop instellen door het een BM_SETCHECK of BM_SETSTATE bericht te verzenden.