Stile
Der Stil gibt an, welcher Art der Button ist. Es gibt drei grundsätzliche Ausprägungen: Pushbutton, Checkbox und Radiobutton.Pushbutton
Dies ist der gewöhnliche Button, der gedrückt wird und eine Aktion auslöst, indem er eine WM_COMMAND-Nachricht an das Elternfenster sendet. In der Variante Default-Pushbutton, ist er etwas stärker umrandet und reagiert, wenn der Anwender die Return-Taste drückt.- BS_PUSHBUTTON
- BS_DEFPUSHBUTTON
Checkbox
Ein kleines Rechteck, in dem man ein Kreuz erscheinen und verschwinden lassen kann. Ein Text befindet sich rechts davon (oder links, wenn man BS_LEFTTEXT angibt). Das 3-State Element kennt noch einen dritten Zustand: gedimmt zeigt an, daß der Button nicht anwählbar ist. Die AUTO-Variante schaltet selbstständig das Kreuz ein und aus.- BS_CHECKBOX
- BS_3STATE
- BS_AUTOCHECKBOX
- BS_AUTO3STATE
Radiobutton
Ein Radiobutton verhält sich einzeln gleich einer Checkbox. Lediglich im Aussehen ist ein Unterschied sichtbar, der Radiobutton ist rund und hat einen Punkt in der Mitte, wenn er ausgewählt ist.In Gruppen zusammengefaßt, kann aber nur maximal einer von Ihnen angewählt werden. In der AUTO-Variante braucht dies nicht einmal der Programmierer selbst zu realisieren. Zu einer Gruppe gehören diejenigen, die das gleiche Elternfenster besitzen. Dies wird üblicherweise durch den Einsatz eines Rahmens erreicht.
BS_RADIOBUTTON
BS_AUTORADIOBUTTON
Groupbox
Dies ist ein solcher Rahmen, um Radiobuttons zu gruppieren. In der linken oberen Ecke kann ein Text stehen, um eine gemeinsame Überschrift zu haben.BS_GROUPBOX
Weitere Attribute
- BS_OWNERDRAW
- Der Programmierer übernimmt die Darstellung des Buttons
- BS_LEFTTEXT
- Bei Radiobuttons und Checkboxes erscheint der Text links vom Feld.
Ereignis Button angeklickt
Während andere Kontrollelemente noch prüfen müssen, welches Ereignis eingetroffen sein könnte, ist dies bei Buttons im Allgemeinen ein Klick. Dadurch ergibt sich eine vereinfachte Ereignisabfrage:case WM_COMMAND: switch(LOWORD(wParam)) { case ID_BUTTON: break; } break; |
Enable und Disable des Buttons
Ein Button kann mit der Funktion EnableWindow deaktiviert werden. Der erste Parameter ist das HWND des Buttons. Der zweite Parameter ist TRUE für aktiv oder FALSE für deaktiviert.EnableWindow(hwndButton, TRUE); // aktiv EnableWindow(hwndButton, FALSE); // aktiv |
Buttons mit Haken
Prüfen, ob ein Button mit einem Haken versehen ist. Funktioniert bei Radiobuttons und CheckboxesHWND hButton; hButton = GetDlgItem(hWnd, ID_BUTTON); if (SendMessage(hButton , BM_GETCHECK, 0, 0)==BST_CHECKED) { |
Setzen eines Hakens
SendMessage(hButton, BM_SETCHECK, BST_CHECKED, 0); |
Da BST_CHECKED als 1 definiert ist und BST_UNCHECKED als 0, kann man auch den booleschen Ausdruck als Parameter verwenden.