CMFCToolBarButton Class
Provides button functionality to toolbars.
Syntax
class CMFCToolBarButton : public CObject
Members
Public Constructors
Name | Description |
---|---|
CMFCToolBarButton::CMFCToolBarButton | Constructs and initializes a CMFCToolBarButton object. |
CMFCToolBarButton::~CMFCToolBarButton |
Destructor. |
Public Methods
Name | Description |
---|---|
CMFCToolBarButton::CanBeDropped | Specifies whether a user can position a button on a toolbar or menu during customization. |
CMFCToolBarButton::CanBeStored | Specifies whether the button can be stored. |
CMFCToolBarButton::CanBeStretched | Specifies whether a user can stretch the button during customization. |
CMFCToolBarButton::CompareWith | Compares this instance with the provided CMFCToolBarButton object. |
CMFCToolBarButton::CopyFrom | Copies the properties of another toolbar button to the current button. |
CMFCToolBarButton::CreateFromOleData | Creates a CMFCToolBarButton object from the provided COleDataObject object. |
CMFCToolBarButton::CreateObject |
Used by the framework to create a dynamic instance of this class type. |
CMFCToolBarButton::EnableWindow | Enables or disables mouse and keyboard input. |
CMFCToolBarButton::ExportToMenuButton | Copies text from the toolbar button to a menu. |
CMFCToolBarButton::GetClipboardFormat | Retrieves the global clipboard format for the application. |
CMFCToolBarButton::GetHwnd | Retrieves the window handle that is associated with the toolbar button. |
CMFCToolBarButton::GetImage | Retrieves the image index of the button. |
CMFCToolBarButton::GetInvalidateRect | Retrieves the region of the client area of the button that must be redrawn. |
CMFCToolBarButton::GetParentWnd | Retrieves the parent window of the button. |
CMFCToolBarButton::GetProtectedCommands | Retrieves the list of commands that the user cannot customize. |
CMFCToolBarButton::GetTextSize | Retrieves the size of the button text. |
CMFCToolBarButton::HasFocus | Determines whether the button has the current input focus. |
CMFCToolBarButton::HaveHotBorder | Determines whether a border of the button is displayed when a user selects the button. |
CMFCToolBarButton::IsDrawImage | Determines whether an image is displayed on the button. |
CMFCToolBarButton::IsDrawText | Determines whether a text label is displayed on the button. |
CMFCToolBarButton::IsDroppedDown | Determines whether the button displays a submenu. |
CMFCToolBarButton::IsEditable | Determines whether the button can be customized. |
CMFCToolBarButton::IsExtraSize | Determines whether the button can be displayed with an extended border. |
CMFCToolBarButton::IsFirstInGroup | Determines whether the button is in the first position in its button group. |
CMFCToolBarButton::IsHidden | Determines whether the button is hidden. |
CMFCToolBarButton::IsHorizontal | Determines whether the button is located on a horizontal toolbar. |
CMFCToolBarButton::IsLastInGroup | Specifies whether the button is in the last position in its button group. |
CMFCToolBarButton::IsLocked | Determines whether the button is on a locked (non-customizable) toolbar. |
CMFCToolBarButton::IsOwnerOf | Determines whether the button is the owner of the provided window handle. |
CMFCToolBarButton::IsVisible | Determines whether the toolbar button is visible. |
CMFCToolBarButton::IsWindowVisible | Determines whether the underlying window handle of the button is visible. |
CMFCToolBarButton::NotifyCommand | Specifies whether the button processes the WM_COMMAND message. |
CMFCToolBarButton::OnAddToCustomizePage | Called by the framework when the button is added to a Customize dialog box. |
CMFCToolBarButton::OnBeforeDrag | Specifies whether the button can be dragged. |
CMFCToolBarButton::OnBeforeDrop | Specifies whether a user can drop the button onto the target toolbar. |
CMFCToolBarButton::OnCalculateSize | Called by the framework to calculate the size of the button for the specified device context and docking state. |
CMFCToolBarButton::OnCancelMode | Called by the framework to handle the WM_CANCELMODE message. |
CMFCToolBarButton::OnChangeParentWnd | Called by the framework when the button is inserted into a new toolbar. |
CMFCToolBarButton::OnClick | Called by the framework when the user clicks the mouse button. |
CMFCToolBarButton::OnClickUp | Called by the framework when the user releases the mouse button. |
CMFCToolBarButton::OnContextHelp | Called by the framework when the parent toolbar handles a WM_HELPHITTEST message. |
CMFCToolBarButton::OnCtlColor | Called by the framework when the parent toolbar handles a WM_CTLCOLOR message. |
CMFCToolBarButton::OnCustomizeMenu | Allows the button to modify the provided menu when the application displays a shortcut menu on the parent toolbar. |
CMFCToolBarButton::OnDblClk | Called by the framework when the parent toolbar handles a WM_LBUTTONDBLCLK message. |
CMFCToolBarButton::OnDraw | Called by the framework to draw the button by using the specified styles and options. |
CMFCToolBarButton::OnDrawOnCustomizeList | Called by the framework to draw the button in the Commands pane of the Customize dialog box. |
CMFCToolBarButton::OnGetCustomToolTipText | Called by the framework to retrieve the custom tooltip text for the button. |
CMFCToolBarButton::OnGlobalFontsChanged | Called by the framework when the global font has changed. |
CMFCToolBarButton::OnMove | Called by the framework when the parent toolbar moves. |
CMFCToolBarButton::OnShow | Called by the framework when the button becomes visible or invisible. |
CMFCToolBarButton::OnSize | Called by the framework when the parent toolbar changes its size or position and this change requires the button to change size. |
CMFCToolBarButton::OnToolHitTest | Called by the framework when the parent toolbar must determine whether a point is in the bounding rectangle of the button. |
CMFCToolBarButton::OnUpdateToolTip | Called by the framework when the parent toolbar updates its tooltip text. |
CMFCToolBarButton::PrepareDrag | Called by the framework when the button is about to perform a drag-and-drop operation. |
CMFCToolBarButton::Rect | Retrieves the bounding rectangle of the button. |
CMFCToolBarButton::ResetImageToDefault | Sets to the default value the image that is associated with the button. |
CMFCToolBarButton::SaveBarState | Saves the state of the toolbar button. |
CMFCToolBarButton::Serialize | Reads this object from an archive or writes it to an archive. (Overrides CObject::Serialize.) |
CMFCToolBarButton::SetACCData | Populates the provided CAccessibilityData object with accessibility data from the toolbar button. |
CMFCToolBarButton::SetClipboardFormatName | Renames the global clipboard format. |
CMFCToolBarButton::SetImage | Sets the image index of the button. |
CMFCToolBarButton::SetProtectedCommands | Sets the list of commands that the user cannot customize. |
CMFCToolBarButton::SetRadio | Called by the framework when a button changes its checked state. |
CMFCToolBarButton::SetRect | Sets the bounding rectangle of the button. |
CMFCToolBarButton::SetStyle | Sets the style of the button. |
CMFCToolBarButton::SetVisible | Specifies whether the button is visible. |
CMFCToolBarButton::Show | Shows or hides the button. |
Data Members
Name | Description |
---|---|
CMFCToolBarButton::m_bImage | Specifies whether an image is displayed on the button. |
CMFCToolBarButton::m_bText | Specifies whether a text label is displayed on the button. |
CMFCToolBarButton::m_bTextBelow | Specifies whether the text label is displayed underneath the image on the button. |
CMFCToolBarButton::m_bUserButton | Specifies whether the button has a user-defined image. |
CMFCToolBarButton::m_bWholeText | Specifies whether the button displays its full text label even if it does not fit in the bounding rectangle. |
CMFCToolBarButton::m_bWrap | Specifies whether the button next to a separator will be put on the next row. |
CMFCToolBarButton::m_bWrapText | Specifies whether multi-line text labels are enabled. |
CMFCToolBarButton::m_nID | The command ID of the button. |
CMFCToolBarButton::m_nStyle | The style of the button. |
CMFCToolBarButton::m_strText | The text label of the button. |
Remarks
A CMFCToolbarButton
object is a control that resides on a toolbar. Its behavior resembles that of an ordinary button. You can assign an image and a text label to this object. A toolbar button can also have a command ID. When the user clicks the toolbar button, the framework executes the command that this ID specifies.
Typically, toolbar buttons can be customized: the user can drag buttons from one toolbar to another, and copy, paste, delete, and edit text labels and images. To prevent the user from customizing the toolbar, you can lock the toolbar in one of two ways. Either set the bLocked
flag to TRUE when you call CMFCToolBar::LoadToolBar, or add the command ID of an individual button to the global list of protected commands by using the CMFCToolBarButton::SetProtectedCommands method.
CMFCToolBarButton
objects display images from the global collections of toolbar images in the application. These collections are maintained by the parent toolbar, CMFCToolBar Class. For more information, see CMFCToolBarImages Class.
When the user clicks a toolbar button, its parent toolbar processes the mouse message and communicates the appropriate actions to the button. If the button has a valid command ID, the parent toolbar sends the WM_COMMAND message to the parent frame.
The CMFCToolBarButton
class is the base class for other toolbar button classes, such as CMFCToolBarMenuButton Class, CMFCToolBarEditBoxButton Class, and CMFCToolBarComboBoxButton Class.
Example
The following example demonstrates how to configure a CMFCToolBarButton
object by using various methods in the CMFCToolBarButton
class. The example illustrates how to enable the mouse and keyboard input, set the image index of the button, set the bounding rectangle of the button, and make the button visible. This code snippet is part of the Tab Control sample.
CMFCToolBarButton *pOffice2007 = NULL;
int nIndex = -1;
for (UINT uiCmd = ID_VIEW_APPLOOK_2007_1; uiCmd <= ID_VIEW_APPLOOK_2007_4; uiCmd++)
{
// CMFCToolBar m_wndToolBarTheme
nIndex = m_wndToolBarTheme.CommandToIndex(uiCmd);
CMFCToolBarButton *pButton = m_wndToolBarTheme.GetButton(nIndex);
if (pButton != NULL)
{
pOffice2007 = pButton;
break;
}
}
pOffice2007->EnableWindow();
pOffice2007->SetImage(1);
pOffice2007->SetRect(CRect(1, 1, 1, 1));
pOffice2007->SetVisible();
pOffice2007->Show(true);
Inheritance Hierarchy
Requirements
Header: afxtoolbarbutton.h
CMFCToolBarButton::CanBeDropped
Specifies whether a user can position a button on a toolbar or menu during customization.
virtual BOOL CanBeDropped(CMFCToolBar* pToolbar);
Parameters
pToolbar
[in] Unused.
Return Value
This method returns TRUE.
Remarks
By default, a toolbar button can be dropped on every customizable (that is, non-locked) toolbar.
The default implementation of this method returns TRUE. Override this method and return FALSE if you want to prevent the user from repositioning the button.
CMFCToolBarButton::CanBeStored
Determines whether the button can be stored.
virtual BOOL CanBeStored() const;
Return Value
This method returns TRUE.
Remarks
The framework uses this method to determine whether the button can participate in a drag-and-drop operation.
The default implementation returns TRUE. Override this method if your button cannot be stored as part of a drag-and-drop operation. For more information about drag-and-drop operations, see OLE drag and drop.
CMFCToolBarButton::CanBeStretched
Specifies whether a user can stretch the button during customization.
virtual BOOL CanBeStretched() const;
Return Value
This method returns FALSE.
Remarks
This method is used by the framework to determine whether the button can be stretched in customization mode.
The default implementation of this method returns FALSE. Override this method to return TRUE for a variable-width control such as a combo box or slider.
For more information about customization mode, see CMFCToolBar::SetCustomizeMode.
CMFCToolBarButton::CMFCToolBarButton
Constructs and initializes a CMFCToolBarButton
object.
CMFCToolBarButton(
UINT uiID,
int iImage,
LPCTSTR lpszText=NULL,
BOOL bUserButton=FALSE,
BOOL bLocked=FALSE);
Parameters
uiID
[in] The command ID of the button.
iImage
[in] The image index of the button in the collection of images.
lpszText
[in] The text label of the button. Can be NULL.
bUserButton
[in] A Boolean value that determines whether the button is user-defined. If this parameter is TRUE, the button is user-defined. Otherwise, the button image is loaded from a resource.
bLocked
[in] A Boolean value that determines whether the button can be customized. If this parameter is TRUE, the button cannot be customized. Otherwise, the button can be customized.
CMFCToolBarButton::CompareWith
Compares this instance with the provided CMFCToolBarButton
object.
virtual BOOL CompareWith(const CMFCToolBarButton& other) const;
Parameters
other
[in] Reference to the object to compare with this instance.
Return Value
Nonzero if the provided object equals the value of this instance; otherwise, 0.
Remarks
The default implementation determines whether the command ID of the provided object equals the command ID of this instance. Override this method if you must perform additional processing to determine whether two CMFCToolBarButton
objects are equal.
CMFCToolBarButton::CopyFrom
Copies the properties of another toolbar button to the current button.
virtual void CopyFrom(const CMFCToolBarButton& src);
Parameters
src
[in] A reference to the source button from which to copy.
Remarks
Call this method to copy another toolbar button to this toolbar button.
CMFCToolBarButton::CreateFromOleData
Creates a CMFCToolBarButton
object from the provided COleDataObject
object.
static CMFCToolBarButton* __stdcall CreateFromOleData(COleDataObject* pDataObject);
Parameters
pDataObject
[in] The source OLE data object.
Return Value
The created CMFCToolBarButton
object.
Remarks
This method is used by the framework to perform data transfer in various formats. For example, the CMFCOutlookBarPane::OnDragOver
method uses this method to perform drag-and-drop operations.
CMFCToolBarButton::EnableWindow
Enables or disables mouse and keyboard input.
virtual void EnableWindow(BOOL bEnable = TRUE);
Parameters
bEnable
[in] Set this parameter to TRUE to enable input, or to FALSE to disable input.
Remarks
This method calls the EnableWindow
function to enable or disable input. For more information, see EnableWindow in the Windows SDK.
CMFCToolBarButton::ExportToMenuButton
Copies text from the toolbar button to a menu.
virtual BOOL ExportToMenuButton(CMFCToolBarMenuButton& menuButton) const;
Parameters
menuButton
[in] A reference to the target menu button.
Return Value
This method returns TRUE.
Remarks
The framework calls this method to copy the text from a toolbar button to a menu button. The default implementation copies the text label of the button. If the text label is empty, this method copies the tooltip text of the button.
The default implementation of this method returns TRUE. Override this method if you want to take additional actions when the framework converts an object that is derived from CMFCToolbarButton to a menu button.
CMFCToolBarButton::GetClipboardFormat
Retrieves the global clipboard format for the application.
static CLIPFORMAT __stdcall GetClipboardFormat();
Return Value
The global CLIPFORMAT value for the application.
Remarks
The framework calls this method to retrieve the clipboard format for OLE data transfer operations. For example, the CMFCToolBarButton::CreateFromOleData method uses this method to copy data from a source OLE data object.
This method sets the global CLIPFORMAT value the first time this method is called. All subsequent calls to this method return this value.
To allow drag-and-drop operations to occur between applications, call the CMFCToolBarButton::SetClipboardFormatName method.
For more information about clipboards in MFC, see Clipboard.
CMFCToolBarButton::GetHwnd
Retrieves the window handle that is associated with the toolbar button.
virtual HWND GetHwnd();
Return Value
The window handle that is associated with the toolbar button or NULL if the toolbar button has no associated window handle.
Remarks
The default implementation of this method returns NULL. Override this method to return the window handle of your specific control.
CMFCToolBarButton::GetImage
Retrieves the image index of the button.
int GetImage() const;
Return Value
The index of the image associated with this button.
Remarks
If the button has a user-defined image (that is, if bUserButton was TRUE in the constructor), the returned index specifies an image in the collection of user-defined images (see CMFCToolBar::GetUserImages). Otherwise, the index specifies an image in the collection of images that are loaded from a resource file (see CMFCToolBar::GetImages). For more information about resource files, see Working with Resource Files.
CMFCToolBarButton::GetInvalidateRect
Retrieves the region of the client area of the button that must be redrawn.
virtual const CRect GetInvalidateRect() const;
Return Value
A CRect
object that specifies the region that must be redrawn.
Remarks
The default implementation of this method returns the whole client area. Override this method if you want a different area to be redrawn.
CMFCToolBarButton::GetParentWnd
Retrieves the parent window of the button.
CWnd* GetParentWnd() const;
Return Value
The parent window of the button.
CMFCToolBarButton::GetProtectedCommands
Retrieves the list of commands that the user cannot customize.
static const CList<UINT,UINT>& GetProtectedCommands();
Return Value
The list of protected commands.
Remarks
In customization mode, the framework disables toolbar button commands that are protected. The user cannot perform drag-and-drop and edit operations on disabled toolbar buttons.
Use the CMFCToolBarButton::SetProtectedCommands method to define the list of protected commands.
CMFCToolBarButton::GetTextSize
Retrieves the size of the button text.
SIZE GetTextSize() const;
Return Value
A SIZE object that contains the size, in pixels, of the button text.
CMFCToolBarButton::HasFocus
Determines whether the button has the current input focus.
virtual BOOL HasFocus() const;
Return Value
Nonzero if the button has the input focus; otherwise 0.
Remarks
The default implementation of this method returns nonzero if the button has the input focus or is a child or descendant window of the window that has the input focus. You can override this function to customize this behavior.
CMFCToolBarButton::HaveHotBorder
Determines whether a border of the button is displayed when a user selects the button.
virtual BOOL HaveHotBorder() const;
Return Value
This method returns TRUE.
Remarks
The framework calls this method to determine whether the toolbar button should display its border when a user selects it.
The default implementation returns TRUE. You can override this method to customize this behavior.
CMFCToolBarButton::IsDrawImage
Determines whether an image is displayed on the button.
BOOL IsDrawImage() const;
Return Value
Nonzero if an image is displayed on the button; otherwise 0.
Remarks
This method returns FALSE if the toolbar button has no associated image ( CMFCToolBarButton::GetImage returns -1) or if CMFCToolBarButton::m_bImage is set to FALSE.
CMFCToolBarButton::IsDrawText
Determines whether a text label is displayed on the button.
BOOL IsDrawText() const;
Return Value
Nonzero if a text label is displayed; otherwise 0.
Remarks
This method returns FALSE if the toolbar button has no associated text label ( CMFCToolBarButton::m_strText is empty) or CMFCToolBarButton::m_bText is set to FALSE.
CMFCToolBarButton::IsDroppedDown
Determines whether the button displays a submenu.
virtual BOOL IsDroppedDown() const;
Return Value
This method returns FALSE.
Remarks
The default implementation of this method returns FALSE. Override this method to return TRUE if your control displays a submenu.
CMFCToolBarButton::IsEditable
Determines whether the button can be customized.
virtual BOOL IsEditable() const;
Return Value
Nonzero if a button can be customized by the user; otherwise 0.
Remarks
The framework calls this method to determine whether the user can customize the toolbar button by using drag-and-drop or edit operations.
The default implementation returns FALSE if the command ID of the button is a standard command (you can determine this by calling the IsStandardCommand
function) or if the command ID is in the list of protected commands. For more information about protected commands, see CMFCToolBarButton::GetProtectedCommands and CMFCToolBarButton::SetProtectedCommands.
Override this method to customize its behavior.
CMFCToolBarButton::IsExtraSize
Determines whether the button can be displayed with an extended border.
virtual BOOL IsExtraSize() const;
Return Value
Nonzero if the toolbar button can be displayed with an extended border; otherwise 0.
Remarks
Several skins use extra size for the borders of toolbar buttons (for example, round buttons).
If the user moves this button from one toolbar to another, the framework calls the CMFCToolBarButton::OnChangeParentWnd method. The CMFCToolBarButton::OnChangeParentWnd method sets the extra size flag to that of the new parent toolbar (for more information, see CMFCToolBar::IsButtonExtraSizeAvailable).
CMFCToolBarButton::IsFirstInGroup
Determines whether the button is in the first position in its button group.
virtual BOOL IsFirstInGroup() const;
Return Value
TRUE if the button is the first button in its button group; otherwise FALSE.
Remarks
This method defines a button group as a neighboring set of buttons that are positioned on the same row and are bounded by separators or the border of the toolbar. This method returns FALSE if the toolbar button refers to the Customize button. For more information about the Customize button, see CMFCToolBar::GetCustomizeButton.
Call the CMFCToolBarButton::IsLastInGroup method to determine whether the button is in the last position in its button group.
CMFCToolBarButton::IsHidden
Determines whether the button is hidden.
BOOL IsHidden() const;
Return Value
Nonzero if the button is hidden (invisible); otherwise 0.
Remarks
The framework calls this method when the parent toolbar is stretched to determine whether the toolbar button is visible.
If you set the button to be invisible by using the CMFCToolBarButton::SetVisible method, use CMFCToolBarButton::IsVisible to determine whether the toolbar button is visible.
By default, all toolbar buttons are visible. Use the CMFCToolBarButton::Show method to hide or show toolbar buttons.
CMFCToolBarButton::IsHorizontal
Determines whether the button is located on a horizontal toolbar.
BOOL IsHorizontal() const;
Return Value
Nonzero if a toolbar button is located on a horizontal toolbar; otherwise 0.
Remarks
The framework calls this method to determine the layout of toolbar buttons.
This method returns the m_bHorz
data member. The default value of the m_bHorz
data member is TRUE; it is reset on each call to the CMFCToolBarButton::OnDraw method.
CMFCToolBarButton::IsLastInGroup
Specifies whether the button is in the last position in its button group.
virtual BOOL IsLastInGroup() const;
Return Value
TRUE if the button is the last button in its button group; otherwise FALSE.
Remarks
This method defines a button group as a neighboring set of buttons that are positioned on the same row and are bounded by separators or the border of the toolbar This method returns FALSE if the toolbar button has no parent toolbar or the toolbar button refers to the Customize button. For more information about the Customize button, see CMFCToolBar::GetCustomizeButton.
Call the CMFCToolBarButton::IsFirstInGroup method to determine whether the button is in the first position in its button group.
CMFCToolBarButton::IsLocked
Determines whether the button is on a locked (non-customizable) toolbar.
BOOL IsLocked() const;
Return Value
Nonzero if the button is on a locked toolbar; otherwise 0.
Remarks
The framework calls this method to determine whether the user can customize the toolbar button by using drag-and-drop or edit operations. Set the locked attribute on the parent toolbar by using the CMFCToolBar::LoadToolBar method. The framework passes the value of this attribute to the constructor of each toolbar button ( CMFCToolbarButton) that it inserts into the parent toolbar.
CMFCToolBarButton::IsOwnerOf
Determines whether the button is the owner of the provided window handle.
virtual BOOL IsOwnerOf(HWND hwnd);
Parameters
hwnd
[in] A window handle.
Return Value
Nonzero if the button is the owner of the provided window handle; otherwise 0.
Remarks
This method returns nonzero if hwnd either refers to the direct window handle or is a child of the window handle that is associated with the button. This method returns 0 if hwnd is NULL.
CMFCToolBarButton::IsVisible
Determines whether the toolbar button is visible.
BOOL IsVisible() const;
Return Value
Nonzero if the toolbar button is visible; otherwise 0.
Remarks
You can show or hide the toolbar button by using the CMFCToolBarButton::SetVisible method. Call the CPane::AdjustSizeImmediate method on the parent toolbar after you call CMFCToolBarButton::SetVisible to recalculate the layout of a parent toolbar.
CMFCToolBarButton::IsWindowVisible
Determines whether the underlying window handle of the button is visible.
virtual BOOL IsWindowVisible();
Return Value
Nonzero if the underlying window handle of the button is visible; otherwise 0.
Remarks
This method returns nonzero if the styles attribute of the underlying window handle contains the WS_VISIBLE style. This method returns FALSE if the underlying window handle of the button is NULL.
CMFCToolBarButton::m_bImage
Specifies whether an image is displayed on the button.
BOOL m_bImage;
Remarks
If this data member is set to TRUE, the framework displays the image that is associated with the toolbar button; otherwise the framework does not display the image. This member affects the return value of the CMFCToolBarButton::m_bImage method.
CMFCToolBarButton::m_bText
Specifies whether a text label is displayed on the button.
BOOL m_bText;
Remarks
If this data member is set to TRUE, the framework displays the text label of the toolbar button; otherwise the framework does not display the text label. This member affects the return value of the CMFCToolBarButton::m_bText method.
CMFCToolBarButton::m_bTextBelow
Specifies whether the text label is displayed underneath the image on the button.
BOOL m_bTextBelow;
Remarks
If this member variable is set to TRUE, the framework displays the text of the button underneath the image. The default value of this member is FALSE.
CMFCToolBarButton::m_bUserButton
Specifies whether the button has a user-defined image
BOOL m_bUserButton;
Remarks
This data member is set to TRUE when the button has a user-defined image associated with it.
CMFCToolBarButton::m_bWholeText
Specifies whether the button displays its full text label even if it does not fit in the bounding rectangle.
BOOL m_bWholeText;
Remarks
If this data member is set to TRUE, the framework displays the full text label by enlarging the button. Otherwise, the framework truncates and appends an ellipsis ( ...) to the text label.
CMFCToolBarButton::m_bWrap
Specifies whether the button next to a separator will be put on the next row.
BOOL m_bWrap;
Remarks
The framework sets this data member to TRUE when the toolbar button does not fit on the current row or when you specify a layout (for example, a specific number of toolbar buttons per row).
The framework places this button on the next row if this data member is set to TRUE and the toolbar is docked horizontally or floating.
The default value of this data member is FALSE.
CMFCToolBarButton::m_bWrapText
Specifies whether multi-line text labels are enabled.
AFX_IMPORT_DATA static BOOL m_bWrapText;
Remarks
If this static member variable is TRUE, the framework enables all toolbars to display multi-line text labels on toolbar buttons.
The default value of this data member is FALSE.
CMFCToolBarButton::m_nID
The command ID of the button.
UINT m_nID;
Remarks
A command ID of -1 indicates that the button is a separator. All button separators have the TBBS_SEPARATOR style. See CMFCToolBarButton::m_nStyle for more information about button styles.
CMFCToolBarButton::m_nStyle
The style of the button.
UINT m_nStyle;
Remarks
See ToolBar Control Styles for the list of available toolbar button styles.
CMFCToolBarButton::m_strText
The text label of the button.
CString m_strText;
Remarks
This data member contains the text label of the button. The text label can be empty.
CMFCToolBarButton::NotifyCommand
Specifies whether the button processes the WM_COMMAND message.
virtual BOOL NotifyCommand(int iNotifyCode);
Parameters
iNotifyCode
[in] The notification message that is associated with the command.
Return Value
This method returns FALSE.
Remarks
The framework calls this method when it is about to send a WM_COMMAND message to the parent window.
By default, this method returns FALSE. Override this method to return TRUE if you want to process the WM_COMMAND message or FALSE to indicate that the parent toolbar should handle the message.
CMFCToolBarButton::OnAddToCustomizePage
Called by the framework when the button is added to a Customize dialog box.
virtual void OnAddToCustomizePage();
Remarks
The default implementation of this method does nothing. Override this method if you want to perform some action when the button is added to a Customize dialog box.
CMFCToolBarButton::OnBeforeDrag
Specifies whether the button can be dragged.
virtual BOOL OnBeforeDrag() const;
Return Value
TRUE if the button can be dragged; otherwise FALSE.
Remarks
The framework calls this method before the user starts to drag the button.
The default implementation of this method returns TRUE. Override this method to return FALSE to disable dragging of the button.
CMFCToolBarButton::OnBeforeDrop
Specifies whether a user can drop the button onto the target toolbar.
virtual BOOL OnBeforeDrop(CMFCToolBar* pTarget);
Parameters
pTarget
[in] The target of the drag-and-drop operation.
Return Value
TRUE if the button can be dropped onto the provided target toolbar; otherwise FALSE.
Remarks
The framework calls this method before the button is dropped onto a toolbar.
The default implementation of this method returns TRUE. Override this method to return FALSE to disable the drop operation on the specified target.
CMFCToolBarButton::OnCalculateSize
Called by the framework to calculate the size of the button for the specified device context and docking state.
virtual SIZE OnCalculateSize(
CDC* pDC,
const CSize& sizeDefault,
BOOL bHorz);
Parameters
pDC
[in] The device context that displays the button.
sizeDefault
[in] The default size of the button.
bHorz
[in] The dock state of the parent toolbar. This parameter is TRUE if the toolbar is docked horizontally or is floating, or FALSE if the toolbar is docked vertically.
Return Value
A SIZE
structure that contains the dimensions of the button, in pixels.
Remarks
The framework calls this method to determine the size of the toolbar button for the specified device context and dock state.
The default implementation considers the text and image sizes (if they are displayed), the text and image positions (the text below or at the right-hand side of the image), and the toolbar dock state.
Override this method if you want to provide the size of a non-standard button (for example, an edit box button).
CMFCToolBarButton::OnCancelMode
Called by the framework to handle the WM_CANCELMODE message.
virtual void OnCancelMode();
Remarks
The default implementation of this method does nothing. Override this method if you want to handle the WM_CANCELMODE message.
CMFCToolBarButton::OnChangeParentWnd
Called by the framework when the button is inserted into a new toolbar.
virtual void OnChangeParentWnd(CWnd* pWndParent);
Parameters
pWndParent
[in] The new parent window.
Remarks
The button is inserted into a toolbar, for example, when the user drags it from one toolbar to another toolbar.
The default implementation of this method does nothing.
CMFCToolBarButton::OnClick
Called by the framework when the user clicks the mouse button.
virtual BOOL OnClick(
CWnd* pWnd,
BOOL bDelay=TRUE);
Parameters
pWnd
[in] The parent window of the toolbar button.
bDelay
[in] TRUE if the message should be handled with a delay.
Return Value
This method returns FALSE.
Remarks
The framework calls this method when the user clicks the toolbar button.
The default implementation does nothing and returns FALSE. Override this method to return a nonzero value if the button processes the click message.
CMFCToolBarButton::OnClickUp
Called by the framework when the user releases the mouse button.
virtual BOOL OnClickUp();
Return Value
This method returns FALSE.
Remarks
The framework calls this method when the user releases the toolbar button.
The default implementation does nothing and returns FALSE. Override this method to return a nonzero value if the button processes the click message.
CMFCToolBarButton::OnContextHelp
Called by the framework when the parent toolbar handles a WM_HELPHITTEST message.
virtual BOOL OnContextHelp(CWnd* pWnd);
Parameters
pWnd
[in] The parent window of the toolbar button.
Return Value
This method returns FALSE.
Remarks
The default implementation of this method does nothing and returns FALSE. Override this method to return a nonzero value if the button processes the help message.
For more information about the WM_HELPHITTEST message, see TN028: Context-Sensitive Help Support.
CMFCToolBarButton::OnCtlColor
Called by the framework when the parent toolbar handles a WM_CTLCOLOR message.
virtual HBRUSH OnCtlColor(
CDC* pDC,
UINT nCtlColor);
Parameters
pDC
[in] The device context that displays the button.
nCtlColor
[in] The specific color notification.
Return Value
A handle to the brush object that the framework uses to paint the background of the button.
Remarks
The framework calls this method when the parent toolbar processes the WM_CTLCOLOR message for a toolbar button that contains a Windows control. The framework does not call this method if the toolbar button is windowless.
The framework calls this method when the toolbar framework is in customization mode and the toolbar button is unlocked. For more information about customization mode, see CMFCToolBar::SetCustomizeMode. For more information about locking toolbar buttons, see CMFCToolBarButton::IsLocked.
The default implementation does nothing and returns NULL.
CMFCToolBarButton::OnCustomizeMenu
Allows the button to modify the provided menu when the application displays a shortcut menu on the parent toolbar.
virtual BOOL OnCustomizeMenu(CMenu* pMenu);
Parameters
pMenu
[in] The menu to customize.
Return Value
This method returns FALSE.
Remarks
The default implementation does nothing and returns FALSE. Override this method and return a nonzero value if you want to modify the contents of the provided menu.
CMFCToolBarButton::OnDblClk
Called by the framework when the parent toolbar handles a WM_LBUTTONDBLCLK message.
virtual void OnDblClk(CWnd* pWnd);
Parameters
pWnd
[in] - The parent window of the button.
Remarks
This method is called by the CMFCToolBar::OnLButtonDblClk
method when the parent toolbar handles a WM_LBUTTONDBLCLK message.
The default implementation of this method does nothing.
CMFCToolBarButton::OnDraw
Called by the framework to draw the button by using the specified styles and options.
virtual void OnDraw(
CDC* pDC,
const CRect& rect,
CMFCToolBarImages* pImages,
BOOL bHorz=TRUE,
BOOL bCustomizeMode=FALSE,
BOOL bHighlight=FALSE,
BOOL bDrawBorder=TRUE,
BOOL bGrayDisabledButtons=TRUE);
Parameters
pDC
[in] The device context that displays the button.
rect
[in] The bounding rectangle of the button.
pImages
[in] The collection of toolbar images that is associated with the button.
bHorz
[in] The dock state of the parent toolbar. This parameter is TRUE when the button is docked horizontally and FALSE when the button is docked vertically.
bCustomizeMode
[in] Specifies whether the toolbar is in customization mode. This parameter is TRUE when the toolbar is in customization mode and FALSE when the toolbar is not in customization mode.
bHighlight
[in] Specifies whether the button is highlighted. This parameter is TRUE when the button is highlighted and FALSE when the button is not highlighted.
bDrawBorder
[in] Specifies whether the button should display its border. This parameter is TRUE when the button should display its border and FALSE when the button should not display its border.
bGrayDisabledButtons
[in] Specifies whether to shade disabled buttons or use the disabled images collection. This parameter is TRUE when disabled buttons should be shaded and FALSE when this method should use the disabled images collection.
Remarks
Override this method to customize toolbar button drawing.
CMFCToolBarButton::OnDrawOnCustomizeList
Called by the framework to draw the button in the Commands pane of the Customize dialog box.
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
Parameters
pDC
[in] The device context that displays the button.
rect
[in] The bounding rectangle of the button.
bSelected
[in] Specifies whether the button is selected. If this parameter is TRUE, the button is selected. If this parameter is FALSE, the button is not selected.
Return Value
The width, in pixels, of the button on the specified device context.
Remarks
This method is called by the customization dialog box ( Commands tab) when the button is about to display itself on the owner-draw list box.
The default implementation of this method displays the image and text label of the button if they are available. If the text label of the button is not available, the method displays the tooltip text.
Override this method to perform custom drawing.
CMFCToolBarButton::OnGetCustomToolTipText
Called by the framework to retrieve the custom tooltip text for the button.
virtual BOOL OnGetCustomToolTipText(CString& strToolTip);
Parameters
strToolTip
[out] A CString
object that receives the custom tooltip text.
Return Value
This method returns FALSE.
Remarks
The framework calls this method when it displays the tooltip for the toolbar button. If this method returns FALSE, the framework uses a default tooltip.
The default implementation does nothing and returns FALSE. Override this method and return a nonzero value to provide custom tooltip text for the toolbar button.
CMFCToolBarButton::OnGlobalFontsChanged
Called by the framework when the global font has changed.
virtual void OnGlobalFontsChanged();
Remarks
The default implementation of this method does nothing. Override this method to update the font that is used to display the button text.
CMFCToolBarButton::OnMove
Called by the framework when the parent toolbar moves.
virtual void OnMove();
Remarks
The default implementation of this method does nothing. Override this method to reposition the button when the parent toolbar moves.
CMFCToolBarButton::OnShow
Called by the framework when the button becomes visible or invisible.
virtual void OnShow(BOOL bShow);
Parameters
bShow
[in] Specifies whether the button is visible. If this parameter is TRUE, the button is visible. Otherwise, the button is not visible.
Remarks
The default implementation of this method does nothing. Override this method to update the visibility of the button.
CMFCToolBarButton::OnSize
Called by the framework when the parent toolbar changes its size or position and this change causes the button to change size.
virtual void OnSize(int iSize);
Parameters
iSize
[in] The new width of the button.
Remarks
The default implementation of this method does nothing. Override this method to resize the button when the size or position of the parent toolbar changes.
CMFCToolBarButton::OnToolHitTest
Called by the framework when the parent toolbar must determine whether a point is in the bounding rectangle of the button.
virtual BOOL OnToolHitTest(
const CWnd* pWnd,
TOOLINFO* pTI);
Parameters
pWnd
[in] The parent window of the button. Can be NULL.
pTI
[in] A TOOLINFO
structure that contains information about a tool in a tooltip control.
Return Value
The result of OnMenuButtonToolHitTest
if the button can retrieve a pointer to the parent frame window; otherwise FALSE.
Remarks
This method calls one of the following methods if it can convert the parent window to a valid frame object:
CMFCToolBarButton::OnUpdateToolTip
Called by the framework when the parent toolbar updates its tooltip text.
virtual BOOL OnUpdateToolTip(
CWnd* pWndParent,
int iButtonIndex,
CToolTipCtrl& wndToolTip,
CString& str);
Parameters
pWndParent
[in] The parent window.
iButtonIndex
[in] The zero-based index of the button in the parent button collection.
wndToolTip
[in] The control that displays the tooltip text.
str
[out] A CString
object that receives the updated tooltip text.
Return Value
This method returns FALSE.
Remarks
The default implementation of this method does nothing and returns FALSE. Override this method to return a nonzero value if you provide a tooltip text string.
CMFCToolBarButton::PrepareDrag
Called by the framework when the button is about to perform a drag-and-drop operation.
virtual BOOL PrepareDrag(COleDataSource& srcItem);
Parameters
srcItem
[in] A COleDataSource
object that stores state information about the drag-and-drop operation.
Return Value
TRUE if the operation succeeds; otherwise FALSE.
Remarks
The framework calls this method to prepare the toolbar button to store its state in the provided COleDataSource
object. This method stores its state by serializing itself to a shared file and then passing that file to the COleDataSource::CacheGlobalData method. For more information about toolbar button serialization, see CMFCToolBarButton::Serialize.
This method does nothing and returns TRUE if the button cannot be stored (the CMFCToolBarButton::CanBeStored method returns FALSE). It returns FALSE if an exception occurs during object serialization.
For more information about OLE drag-and-drop operations, see OLE drag and drop.
CMFCToolBarButton::Rect
Retrieves the bounding rectangle of the button.
const CRect& Rect() const;
Return Value
A CRect
object that contains the bounding rectangle of a button.
CMFCToolBarButton::ResetImageToDefault
Sets to the default value the image that is associated with the button.
virtual void ResetImageToDefault();
Remarks
This method retrieves the default image from its parent toolbar by using the CMFCToolBar::GetDefaultImage method. If the button has no associated default image, this method sets the text label of the button according to its string resource by using the CStringT::LoadString method. For more information about string resources, see Working with Resource Files.
This method does nothing if the button has a user-defined image.
CMFCToolBarButton::SaveBarState
Saves the state of the toolbar button.
virtual void SaveBarState();
Remarks
The framework calls this method when it creates a CMFCToolBarButton
object as the result of a drag-and-drop operation.
The default implementation of this method does nothing. Override this method to save the state of the toolbar button to an external data source.
CMFCToolBarButton::Serialize
Reads this object from an archive or writes it to an archive.
virtual void Serialize(CArchive& ar);
Parameters
ar
[in] The CArchive
object from which or to which to serialize.
Remarks
This method supports data transfer processes such as clipboard or drag-and-drop operations. It reads or writes properties of the button such as the ID, text label, and image ID from or to the provided CArchive
object.
For serialization examples, see Serialization: Serializing an Object.
CMFCToolBarButton::SetACCData
Populates the provided CAccessibilityData
object with accessibility data from the toolbar button.
virtual BOOL SetACCData(
CWnd* pParent,
CAccessibilityData& data);
Parameters
pParent
[in] The parent window of the toolbar button.
data
[in] A CAccessibilityData
object that is populated with the accessibility data of the toolbar button.
Return Value
This method returns TRUE.
Remarks
Override this method to return FALSE if your toolbar button does not provide accessibility data.
CMFCToolBarButton::SetClipboardFormatName
Renames the global clipboard format.
static void __stdcall SetClipboardFormatName(LPCTSTR lpszName);
Parameters
lpszName
[in] The new name of the global clipboard format. Cannot be NULL.
Remarks
This method makes it possible for drag-and-drop operations to occur among multiple applications. Each application must supply the same clipboard format name.
You must call this method before the framework calls CMFCToolBarButton::GetClipboardFormat.
CMFCToolBarButton::SetImage
Sets the image index of the button.
virtual void SetImage(int iImage);
Parameters
iImage
[in] The index of the image in the collection of toolbar images.
Remarks
If the toolbar button is a separator, iImage refers to the new width of the separator button.
If iImage is less than zero, this method disables drawing of the image and enables drawing of the text label of the button.
CMFCToolBarButton::SetProtectedCommands
Sets the list of commands that the user cannot customize.
static void SetProtectedCommands(const CList<UINT,UINT>& lstCmds);
Parameters
lstCmds
[in] The list of protected commands.
Remarks
In customization mode, the framework disables toolbar button commands that are protected. The user cannot perform drag-and-drop and edit operations on disabled toolbar buttons.
Use the CMFCToolBarButton::GetProtectedCommands method to retrieve the list of protected commands.
CMFCToolBarButton::SetRadio
Called by the framework when a button changes its checked state.
virtual void SetRadio();
Remarks
The default implementation of this method does nothing. Override this method to perform a custom action when the button changes its checked state.
CMFCToolBarButton::SetRect
Sets the bounding rectangle of the button.
void SetRect(const CRect rect);
Parameters
rect
[in] The new bounding rectangle of the button.
Remarks
This method calls the CMFCToolBarButton::OnMove method after it sets the new bounding rectangle.
CMFCToolBarButton::SetStyle
Sets the style of the button.
virtual void SetStyle(UINT nStyle);
Parameters
nStyle
[in] The new style of the button.
Remarks
The default implementation sets the CMFCToolBarButton::m_nStyle data member to nStyle. Override this method if you want to perform additional processing to handle the change in style. See ToolBar Control Styles for a list of valid style flags.
CMFCToolBarButton::SetVisible
Specifies whether the button is visible.
void SetVisible(BOOL bShow=TRUE);
Parameters
bShow
[in] A Boolean value that specifies whether to show or hide the button. If this parameter is TRUE, the button is shown. If the parameter is FALSE, the button is hidden.
Remarks
Use this function to hide or show a particular toolbar button. Call the CPane::AdjustSizeImmediate method after you call this method.
CMFCToolBarButton::Show
Shows or hides the button.
void Show(BOOL bShow);
Parameters
bShow
[in] A Boolean value that specifies whether to show or hide the button. If this parameter is TRUE, the button is shown. If the parameter is FALSE, the button is hidden.
Remarks
The framework calls this method to update the visibility of toolbar buttons when their parent toolbar is resized. The framework calls this method with bShow set to FALSE when the button no longer fits within the bounds of the toolbar. The framework calls this method with bShow set to TRUE when after resizing the button again fits within the bounds of the toolbar.
Use the CMFCToolBarButton::SetVisible method to set the general visibility of the button.
This method calls the CMFCToolBarButton::OnShow method after it updates the visibility state of the button.
See also
Hierarchy Chart
Classes
CMFCToolBar Class
CMFCToolBarImages Class