Focus van toetsenbord en activering

Het systeem berichten toetsenbord naar de berichtenwachtrij van de voorgrond wol die gemaakt van het venster met de toetsenbordfocus. De focus van het toetsenbord is een tijdelijke eigenschap van een venster. Het systeem deelt het toetsenbord onder alle vensters op het scherm door de toetsenbordfocus, in de richting van de gebruiker, van het ene venster naar het andere te verleggen. Het venster dat de toetsenbordfocus heeft (van de berichtenwachtrij van de draad die het heeft aangemaakt) ontvangt alle berichten totdat de focus naar een ander venster verandert toetsenbord.

Een draad kan de GetFocus functie aanroepen om te bepalen welke van haar windows (indien aanwezig) de toetsenbordfocus heeft. Een thread kunt geven de toetsenbordfocus naar een van de Vensters door het aanroepen van de functie SetFocus . Wanneer de toetsenbordfocus van het ene venster naar het andere verandert, signaal het systeem een WM_KILLFOCUS aan het venster dat de focus heeft verloren, en verzendt vervolgens een WM_SETFOCUS -bericht naar het venster dat de focus heeft opgedaan.

Het concept van de toetsenbordfocus is verwant aan die van het actieve venster. Het actieve venster is het op het hoogste niveau venster dat de gebruiker momenteel met werkt. Het venster met focus van het toetsenbord is het actieve venster, of een onderliggend venster van het actieve venster. Zodat de gebruiker het actieve venster gemakkelijk herkennen kunt, het systeem plaatst deze boven aan de Z-volgorde en maakt de titelbalk (als die er is) en de rand gemarkeerd.

De gebruiker kan een top-level venster activeren door erop te klikken, te selecteren met behulp van de alt + tab of alt + esc-toetsencombinatie, of als taaklijst te selecteren. Een thread kunt activeren een venster op het hoogste niveau met behulp van de functie SetActiveWindow . Het kan bepalen of een top-level venster die het gemaakt met behulp van de functie GetActiveWindow actief is.

Wanneer een venster wordt gedeactiveerd en andere geactiveerd, verzendt het systeem het WM_ACTIVATE bericht. Het woord van lagere orde van de parameter wParam is nul als het venster wordt dan nul als het wordt geactiveerd en gedeactiveerd. Als u de verstekprocedure venster het WM_ACTIVATE bericht ontvangt, wordt de toetsenbordfocus naar het actieve venster.

Index