Toolbar Button Map
The toolbar manager for the customizable toolbar also allows you to register a button map. A button map lets you map specific button command IDs to non-standard toolbar buttons such as text buttons, combo box buttons, and two part buttons. You don’t need to include a button map if you only need traditional bitmap-only buttons.
The button map supports the following features:
• Allows customization of buttons on a per-command basis (recall button instances can be cloned).
• Sets the button style.
• Sets the button class.
• Sets button class specific parameters.
• Is linked in via the toolbar manager.
The button map is placed in the implementation file of your frame class, similar to the way a window message map is added.
The following lines of code are an example of a button map.
BEGIN_BUTTON_MAP(btnMap)
STD_BUTTON(ID_CHECKED, TBBS_CHECKBOX)
STD_BUTTON(ID_DISABLE, TBBS_CHECKBOX)
STD_BUTTON(ID_INDETERMINATE, TBBS_INDETERMINATE)
TWOPART_BUTTON(ID_UNDO, ID_DROPARROW, TBBS_CHECKBOX, 0)
TWOPART_BUTTON(ID_REDO, ID_DROPARROW, 0, ID_REDO)
COMBO_BUTTON(ID_FIND, IDC_COMBO_FIND, 0, CBS_DROPDOWN,
150, 40, 150)
END_BUTTON_MAP()
Once you define a button map, it is given to the toolbar manager. For more information, see
“To use the button map”.
STD_BUTTON
The STD_BUTTON macro extends the standard customizable toolbar bitmap only button by introducing a style parameter. The syntax is as follows:
STD_BUTTON(ButtonID, Style)
Table 24 – STD_Button Macro Parameters
Macro parameter | Description |
ButtonID | Command ID for the button. |
Style | Window style (WS_*) |
STD_MENU_BUTTON
The STD_MENU_BUTTON macro extends the standard customizable toolbar by creating a bitmap toolbar button that drops down a menu instead of executing a command.
STD_MENU_BUTTON(ButtonID, style, MenuResID, SubMenuIdx, TPMAlign)
Table 25 – STD_MENU_BUTTON Macro Parameters
Macro Parameter | Description |
ButtonID | The command ID for the button. This command is not actually executed when the button is pressed. |
style | The button’s window style. This parameter is usually zero. |
MenuResID | The resource ID for the menu resource for the drop-down menu. |
SubMenuIdx | Zero-based index for the popup menu’s location in the menu resource—usually zero if creating a separate menu resource. |
TPMAlign | Alignment of the menu when dropped with respect to the toolbar button. Can be either TPM_LEFTALIGN, TPM_CENTERALIGN, or TPM_RIGHTALIGN. |
TEXT_BUTTON
The TEXT_BUTTON macro implements a customizable toolbar button with text. The macro syntax is shown below.
TEXT_BUTTON(ButtonID, textResourceID)
Macro parameter | Description |
ButtonID | Command ID for the button. |
TextResourceID | Resource ID of the text string (or 0 to load based on the button ID). |
TEXT_BUTTON_EX
The TEXT_BUTTON_EX macro is similar to TEXT_BUTTON (it implements a customizable toolbar button with text) except it also introduces a style parameter. The syntax is as follows:
TEXT_BUTTON_EX(ButtonID, TextResourceID, Style)
Macro parameter | Description |
ButtonID | Command ID for the button. |
TextResourceID | Resource ID for the text string (or 0 to load based on the button ID). |
Style | Window style (WS_*) |
TWOPART_BUTTON
The TWOPART_BUTTON macro implements a customizable toolbar button that is divided into two bitmaps. It can issue two separate command IDs (for example, an Undo-Redo button). The syntax for this macro is as follows:
TWOPART_BUTTON(ButtonID, ButtonID2, Style, DispatchID)
Macro parameter | Description |
ButtonID | Obtains the bitmap resource and command ID for the left side of the button. |
ButtonID2 | Obtains the bitmap resource for the right side of the button. |
Style | Window style (WS_*). |
DispatchID | The command ID for the right side of the button. |
COMBO_BUTTON
The COMBO_BUTTON macro implements a customizable toolbar button from which you can drop down a combo box. The syntax is as follows:
COMBO_BUTTON(ButtonID, ComboID, Style,
ComboStyle, ComboDefWidth, ComboMinWidth, ComboHeight)
Macro parameter | Description |
ButtonID | Command ID for the button. |
ComboID | Command ID for the combo button. |
Style | Window style (WS_*). |
ComboStyle | Combo style (CBS_*). Not all combo styles are supported. |
ComboDefWidth | Default width of combo button. |
ComboMinWidth | Minimum width of combo button. |
ComboHeight | Height of combo button. |