Stany przycisku
W tej sekcji omówiono sposób zmiany stanu przycisku i sposobu reagowania aplikacji.
Sekcja składa się z następujących tematów:
- zaznaczenia przycisku
-
elementów stanu przycisku
- stanu koncentracji uwagi
- stanu wypychania
- sprawdzanie stanu
- zmiany stanu przycisku
Wybór przycisku
Użytkownik może wybrać przycisk na trzy sposoby: klikając go za pomocą myszy, przez naciśnięcie ENTER, a następnie naciśnięcie ENTER lub (jeśli przycisk jest częścią grupy zdefiniowanej przez styl WS_GROUP) przez naciśnięcie tabulatora do wybranego przycisku w grupie i użycie strzałek do przeniesienia w tej grupie. Dwie metody tabulacji są częścią wstępnie zdefiniowanego interfejsu klawiaturowego dostarczonego przez system. Aby uzyskać pełny opis tego interfejsu, zobacz okna dialogowe.
Wybranie przycisku zwykle powoduje następujące zdarzenia:
- System nadaje przyciskowi fokus klawiatury.
- Przycisk wysyła do okna nadrzędnego komunikat z powiadomieniem o zaznaczeniu.
- Okno nadrzędne (lub system) wysyła przycisk, aby zmienić jego stan.
- Okno nadrzędne (lub system) przemaluje przycisk, aby odzwierciedlić jego nowy stan.
Elementy stanu przycisku
Stan przycisku może być scharakteryzowany stanem koncentracji uwagi, stanem wypychania i stanem sprawdzania.
- stanu koncentracji uwagi
- stanu wypychania
- sprawdzanie stanu
Stan koncentracji uwagi
Stan koncentracji uwagi dotyczy pola wyboru, przycisku radiowego, przycisku naciśnięcia lub przycisku narysowanego przez właściciela. Przycisk odbiera fokus klawiatury, gdy użytkownik go wybierze i traci fokus, gdy użytkownik wybierze inną kontrolkę. Tylko jedna kontrolka może mieć fokus klawiatury naraz.
Gdy przycisk ma fokus klawiatury, system zazwyczaj wyróżnia tekst, ikonę lub mapę bitową przycisku, otaczając go kropkowaną linią. Ponadto przycisk naciśnięcia ma duże ciemne obramowanie, gdy ma fokus. System automatycznie zmienia wyróżnienie przycisku automatycznego, ale aplikacja musi zmienić wyróżnienie przycisku nieautomatyczne, wysyłając komunikaty.
Stan wypychania
Stan wypychania dotyczy przycisku, pola wyboru, przycisku radiowego lub trójstanowego pola wyboru, ale nie ma zastosowania do innych przycisków. Stan naciśnięcia przycisku można nacisnąć lub nie wypchnąć. Po naciśnięciu przycisku (lub dowolnego przycisku ze stylem BS_PUSHLIKE) przycisk jest rysowany jako zatopiony przycisk. Gdy nie jest on wypychany, jest rysowany jako podniesiony przycisk. Po kliknięciu pola wyboru, przycisku radiowego lub pola wyboru trójstanowego tło przycisku jest szare. Gdy przycisk nie jest wypychany, tło przycisku nie jest szare.
Sprawdzanie stanu
Stan wyboru ma zastosowanie do pola wyboru, przycisku radiowego lub trójstanowego pola wyboru, ale nie ma zastosowania do innych przycisków. Stan można zaznaczyć, wyczyścić lub (w przypadku pól wyboru trójstanowych) nieokreślone. Pole wyboru jest zaznaczone, gdy zawiera znacznik wyboru i jest czyszczone, gdy nie. Przycisk radiowy jest sprawdzany, gdy zawiera czarną kropkę; jest czyszczone, gdy nie. Pole wyboru trójstanowe jest zaznaczone, gdy zawiera znacznik wyboru, jest czyszczone, gdy nie, i jest nieokreślone, gdy zawiera szare pole. System automatycznie zmienia stan sprawdzania przycisku automatycznego, ale aplikacja musi zmienić stan sprawdzania przycisku nieautomatyczny.
Zmiany stanu przycisku
Gdy użytkownik wybierze przycisk, zazwyczaj konieczne jest zmianę co najmniej jednego elementu stanu przycisku. System automatycznie zmienia stan koncentracji uwagi dla wszystkich typów przycisków, stan wypychania przycisków lub przycisków za pomocą stylu BS_PUSHLIKE oraz stan sprawdzania wszystkich przycisków automatycznych. Aplikacja musi wprowadzić wszystkie inne zmiany stanu, biorąc pod uwagę typ, styl i bieżący stan przycisku. Na poniższej liście przedstawiono elementy stanu, które należy zmienić dla każdego typu przycisku:
- Pole wyboru musi zmienić stan sprawdzania.
- Przycisk radiowy musi zmienić stan sprawdzania. Może być również konieczne zmianę stanu kontrolnego innych przycisków radiowych w tej samej grupie, aby zapewnić wzajemnie wykluczany charakter przycisków radiowych.
- Ponieważ stan przycisku narysowanego przez właściciela jest zależny od aplikacji, to, co aplikacja musi zmienić w przycisku, może się różnić. Nie trzeba zmieniać żadnych elementów pola grupy, ponieważ użytkownicy nie mogą zaznaczać pól grupy.
Aplikacja może określić stan przycisku, wysyłając mu komunikat BM_GETCHECK lub BM_GETSTATE; aplikacja może ustawić stan przycisku, wysyłając go BM_SETCHECK lub komunikat BM_SETSTATE.