Auch Checkboxen und Radiobuttons sind im Grunde nur Schaltflächen, nur dass sie zusätzliche Stileigenschaften aufweisen, die sie von gewöhnlichen Buttons unterscheiden.
Eine Checkbox erstellt man mit dem Stil BS_CHECKBOX oder BS_AUTOCHECKBOX. Der Unterschied besteht darin, dass sich der Programmierer beim Stil BS_CHECKBOX selbst darum kümmern muss, ob die Checkbox markiert oder nicht markiert dargestellt wird. Das Beispielprogramm benutzt diesen Stil, um zu zeigen wie man den Status abfragt und ändert:
hwndChkBox := CreateWindowEx(0, 'BUTTON', 'Checkbox', WS_VISIBLE or WS_CHILD or {neuer Stil ->} BS_CHECKBOX, 10, 20, 90, 25, hWnd, IDC_CHKBOX, hInstance, nil);
Der Code für einen Radiobutton sieht ähnlich aus; natürlich werden ein anderer Klassenname und andere Stilattribute verwendet. Hier habe ich übrigens den Stil BM_AUTORADIOBUTTON gewählt. Damit kümmert sich dann das System um die Anzeige des Status. Allerdings müssen sich die benutzten Radiobuttons dann in der gleichen Gruppe befinden:
hwndOpt1 := CreateWindowEx(0, 'BUTTON', 'Radiobutton1', WS_VISIBLE or WS_CHILD or {neuer Stil ->} BS_AUTORADIOBUTTON, 25, 75, 125, 25, hWnd, IDC_OPT1, hInstance, nil);