The Button structure contains the styles, notifications and state values concerned with button controls. Buttons are windows like any other and can be constructed using CreateWindow although more usually they form part of a dialogue box. The values from the Notification substructure are sent as the code parameter in a WM_NOTIFY message. Specialised button messages begin with BM_. The values in the State substructure may be sent or returned in messages such as BM_GETCHECK and BM_SETSTATE.
structure Button: sig structure Style: sig include BIT_FLAGS where type flags = Window.Style.flags val WS_OVERLAPPED: flags and WS_POPUP: flags and WS_CHILD: flags and WS_MINIMIZE: flags and WS_VISIBLE: flags and WS_DISABLED:flags and WS_CLIPSIBLINGS:flags and WS_CLIPCHILDREN:flags and WS_MAXIMIZE:flags and WS_CAPTION:flags and WS_BORDER:flags and WS_DLGFRAME:flags and WS_VSCROLL:flags and WS_HSCROLL:flags and WS_SYSMENU:flags and WS_THICKFRAME:flags and WS_GROUP:flags and WS_TABSTOP:flags and WS_MINIMIZEBOX:flags and WS_MAXIMIZEBOX:flags and WS_TILED:flags and WS_ICONIC:flags and WS_SIZEBOX:flags and WS_OVERLAPPEDWINDOW:flags and WS_TILEDWINDOW:flags and WS_POPUPWINDOW:flags and WS_CHILDWINDOW:flags and BS_3STATE: flags and BS_AUTO3STATE: flags and BS_AUTOCHECKBOX: flags and BS_AUTORADIOBUTTON: flags and BS_BITMAP: flags and BS_BOTTOM: flags and BS_CENTER: flags and BS_CHECKBOX: flags and BS_DEFPUSHBUTTON: flags and BS_FLAT: flags and BS_GROUPBOX: flags and BS_ICON: flags and BS_LEFT: flags and BS_LEFTTEXT: flags and BS_MULTILINE: flags and BS_NOTIFY: flags and BS_OWNERDRAW: flags and BS_PUSHBUTTON: flags and BS_PUSHLIKE: flags and BS_RADIOBUTTON: flags and BS_RIGHT: flags and BS_RIGHTBUTTON: flags and BS_TEXT: flags and BS_TOP: flags and BS_USERBUTTON: flags and BS_VCENTER: flags end structure Notifications: sig val BN_CLICKED: int val BN_PAINT: int val BN_HILITE: int val BN_UNHILITE: int val BN_DISABLE: int val BN_DOUBLECLICKED: int val BN_PUSHED: int val BN_UNPUSHED: int val BN_DBLCLK: int val BN_SETFOCUS: int val BN_KILLFOCUS: int end structure State: sig val BST_UNCHECKED: int val BST_CHECKED: int val BST_INDETERMINATE: int val BST_PUSHED: int val BST_FOCUS: int end end