Button Styles

The following table describes the button styles an application can use when creating button controls:

┌───────────────────┬─────────────────────────────────────────┐
│Style              │Description.                             │
├───────────────────┼─────────────────────────────────────────┤
│BS_3STATE          │Creates a three-state check box (see also│
│                   │BS_CHECKBOX). When the user selects the  │
│                   │check box, it sends a WM_CONTROL message │
│                   │to the owner window.  The owner should   │
│                   │set the check box to the appropriate     │
│                   │state: selected, unselected, or halftone.│
├───────────────────┼─────────────────────────────────────────┤
│BS_AUTO3STATE      │Creates an auto-three-state check box    │
│                   │(see also BS_CHECKBOX).  When the user   │
│                   │selects the check box, the system        │
│                   │automatically sets the check box to the  │
│                   │appropriate state: selected, unselected, │
│                   │or halftone.                             │
├───────────────────┼─────────────────────────────────────────┤
│BS_AUTOCHECKBOX    │Creates an auto-check box (see also      │
│                   │BS_CHECKBOX).  The system automatically  │
│                   │toggles the check box between the        │
│                   │selected and unselected states each time │
│                   │the user selects the box.                │
├───────────────────┼─────────────────────────────────────────┤
│BS_AUTORADIOBUTTON │Creates an auto-radio button (see also   │
│                   │BS_RADIOBUTTON). When the user selects an│
│                   │auto-radio button, the system            │
│                   │automatically selects the button and     │
│                   │removes the selection from the other     │
│                   │auto-radio buttons in the group.         │
├───────────────────┼─────────────────────────────────────────┤
│BS_AUTOSIZE        │Creates a button that is sized           │
│                   │automatically to ensure that the contents│
│                   │fit.  Note:  The cx or cy parameter of   │
│                   │WinCreateWindow must be specified as -1  │
│                   │to implement the autosize feature.       │
├───────────────────┼─────────────────────────────────────────┤
│BS_BITMAP          │Creates a push button containing a bit   │
│                   │map instead of text. This style can only │
│                   │be implemented with BS_PUSHBUTTON.       │
├───────────────────┼─────────────────────────────────────────┤
│BS_CHECKBOX        │Creates a check box-a small square that  │
│                   │has text displayed to its right.  When   │
│                   │the user selects a check box, the check  │
│                   │box sends a WM_CONTROL message to the    │
│                   │owner window.  The owner window should   │
│                   │toggle the check box between selected and│
│                   │unselected states.                       │
├───────────────────┼─────────────────────────────────────────┤
│BS_DEFAULT         │Creates a push button that has a heavy   │
│                   │black border. The user can select this   │
│                   │push button by pressing the spacebar.    │
│                   │This style is useful for letting the user│
│                   │quickly select the most likely set of    │
│                   │options in a dialog window.  This style  │
│                   │is valid only in combination with the    │
│                   │BS_PUSHBUTTON style or the PUSHBUTTON    │
│                   │statement in a resource-definition file. │
├───────────────────┼─────────────────────────────────────────┤
│BS_HELP            │Creates a push button that posts a       │
│                   │WM_HELP message (instead of a WM_COMMAND │
│                   │message) to its owner window when the    │
│                   │user selects the button.  This style is  │
│                   │valid only in combination with the       │
│                   │BS_PUSHBUTTON style or the PUSHBUTTON    │
│                   │statement in a resource-definition file. │
├───────────────────┼─────────────────────────────────────────┤
│BS_ICON            │Creates a push button containing an icon │
│                   │instead of text.                         │
├───────────────────┼─────────────────────────────────────────┤
│BS_MINIICON        │Creates a push button containing a       │
│                   │mini-icon instead of text.               │
├───────────────────┼─────────────────────────────────────────┤
│BS_NOBORDER        │Creates a push button that has no border.│
│                   │This style is valid only in combination  │
│                   │with the BS_PUSHBUTTON style or the      │
│                   │PUSHBUTTON statement in a                │
│                   │resource-definition file.                │
├───────────────────┼─────────────────────────────────────────┤
│BS_NOCURSORSELECT  │Creates an auto-radio button that will   │
│                   │not be selected automatically when the   │
│                   │user moves the cursor to the button using│
│                   │the cursor-movement keys.  This style is │
│                   │valid only in combination with the       │
│                   │BS_AUTORADIOBUTTON style or the          │
│                   │AUTORADIOBUTTON statement in a           │
│                   │resource-definition file.                │
├───────────────────┼─────────────────────────────────────────┤
│BS_NOPOINTERFOCUS  │Creates a radio button or check box that │
│                   │does not receive the keyboard focus when │
│                   │the user selects it. This style is valid │
│                   │in combination with the                  │
│                   │BS_AUTORADIOBUTTON, BS_RADIOBUTTON,      │
│                   │BS_3STATE, BS_AUTO3STATE,                │
│                   │BS_AUTOCHECKBOX, and BS_CHECKBOX styles, │
│                   │or the AUTORADIOBUTTON, RADIOBUTTON,     │
│                   │AUTOCHECKBOX, or CHECKBOX statements in a│
│                   │resource-definition file.                │
├───────────────────┼─────────────────────────────────────────┤
│BS_NOTEBOOKBUTTON  │Creates a notebook button, which is      │
│                   │identical to a pushbutton except that    │
│                   │when it is created as a child of a       │
│                   │notebook page it becomes a button in the │
│                   │common button area of the notebook page. │
│                   │If the button is not in a notebook page  │
│                   │it will be indistinguishable from a      │
│                   │pushbutton.                              │
├───────────────────┼─────────────────────────────────────────┤
│BS_PUSHBUTTON      │Creates a push button-a round-cornered   │
│                   │rectangle with text displayed inside it. │
│                   │When selected, the push button posts a   │
│                   │WM_COMMAND message to its owner window.  │
├───────────────────┼─────────────────────────────────────────┤
│BS_RADIOBUTTON     │Creates a radio button-a small circle    │
│                   │that has text displayed to its right.    │
│                   │Radio buttons usually are used in groups │
│                   │of related, but exclusive, choices.  When│
│                   │the user selects a radio button, the     │
│                   │button sends a WM_CONTROL message to its │
│                   │owner window.  The user should select the│
│                   │button and remove the selection from the │
│                   │other radio buttons in the group.        │
├───────────────────┼─────────────────────────────────────────┤
│BS_SYSCOMMAND      │Creates a button that posts a            │
│                   │WM_SYSCOMMAND message (instead of a      │
│                   │WM_COMMAND message) to the owner window  │
│                   │when the user selects the button.  This  │
│                   │style is valid only in combination with  │
│                   │the BS_PUSHBUTTON style or the PUSHBUTTON│
│                   │statement in a resource-definition file. │
├───────────────────┼─────────────────────────────────────────┤
│BS_TEXT            │Creates a push button containing both    │
│                   │text and icons/mini-icons.               │
├───────────────────┼─────────────────────────────────────────┤
│BS_USERBUTTON      │Creates a user-defined button that sends │
│                   │a WM_CONTROL message to the owner window │
│                   │when the button needs to be drawn,       │
│                   │highlighted, or disabled.  A user-defined│
│                   │button also posts WM_COMMAND messages to │
│                   │the owner window when the user selects   │
│                   │the button.                              │
└───────────────────┴─────────────────────────────────────────┘


[Back: Application-defined Buttons]
[Next: Default Button Behavior]