// XTToolBarCtrl.h interface for the CXTToolBarCtrl class.
//
// This file is a part of the Xtreme Toolkit for MFC.
// ©1998-2003 Codejock Software, All Rights Reserved.
//
// This source code can only be used under the terms and conditions
// outlined in the accompanying license agreement.
//
// support@codejock.com
// http://www.codejock.com
//
//////////////////////////////////////////////////////////////////////
#if !defined(__XTTOOLBARCTRL_H__)
#define __XTTOOLBARCTRL_H__
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// NUMBERED LIST:
//////////////////////////////////////////////////////////////////////
// Summary: CXTToolBarCtrl is a CToolBarCtrl derived class. The CXTToolBarCtrl
// class provides the functionality of the Windows toolbar common control.
// This control (and therefore the CXTToolBarCtrl class) is available
// only to programs running under Windows 95 and Windows NT version 3.51
// and later.
//
// A Windows toolbar common control is a rectangular child window that
// contains one or more buttons. These buttons can display a bitmap image,
// a string, or both. When the user chooses a button, it sends a command
// message to the toolbar’s owner window. Typically, the buttons in a
// toolbar correspond to items in the application’s menu. They provide
// a more direct way for the user to access an application’s commands.
//
// CXTToolBarCtrl objects contain several important internal data structures:
// a list of button image bitmaps or an image list, a list of button label
// stings, and a list of TBBUTTON structures which associate an image and/or
// string with the position, style, state, and command ID of the button.
// Each of the elements of these data structures is referred to by a zero-based
// index. Before you can use a CXTToolBarCtrl object, you must set up
// these data structures. The list of strings can only be used for button
// labels. You cannot retrieve strings from the toolbar.
//
// To use a CXTToolBarCtrl object, you will typically follow these steps:
// [ol]
// [li]Construct the CXTToolBarCtrl object.[/li]
// [li]Call Create to create the Windows toolbar common control and attach
// it to the CXTToolBarCtrl object. Indicate the style of toolbar by using
// styles, such as TBSTYLE_TRANSPARENT for a transparent toolbar, or
// TBSTYLE_DROPDOWN for a toolbar that supports dropdown style buttons.[/li]
// [li]Identify how you want the buttons on the toolbar displayed:
// [ul]
// [li]To use bitmap images for buttons, add the button bitmaps to the
// toolbar by calling AddBitmap.[/li]
// [li]To use images displayed from an image list for buttons, specify
// the image list by calling SetImageList, SetHotImageList, or
// SetDisabledImageList.[/li]
// [li]To use string labels for buttons, add the strings to the toolbar
// by calling AddString and/or AddStrings.[/li]
// [/ul][/li]
// [li]Add button structures to the toolbar by calling AddButtons.[/li]
// [li]If you want tool tips for a toolbar button, in an owner window,
// that is not a CFrameWnd, you need to handle the TTN_NEEDTEXT messages
// in the toolbar’s owner window as described in CXTToolBarCtrl: Handling
// Tool Tip Notifications. If the parent window of the toolbar is derived
// from CFrameWnd, tool tips are displayed without any extra effort from
// you because CFrameWnd provides a default handler.[/li]
// [li]If you want your user to be able to customize the toolbar, make
// a call to CXTToolBar::EnableCustomization(bool bEnable).[/li]
// [/ol]
// You can use SaveState to save the current state of a toolbar control
// in the registry and RestoreState to restore the state based on information
// previously stored in the registry. In addition to saving the toolbar
// state between uses of the application, applications typically store
// the state before the user begins customizing the toolbar in case the
// user later wants to restore the toolbar to its original state.
//
// Support for Internet Explorer Version 4.0 and Later
//
// To support functionality introduced in Internet Explorer, version 4.0
// and later, MFC provides image list support and transparent and flat
// styles for toolbar controls.
//
// A transparent toolbar allows the client under the toolbar to show through.
// To create a transparent toolbar, use both TBSTYLE_FLAT and TBSTYLE_TRANSPARENT
// styles. Transparent toolbars feature hot tracking; that is, when the
// mouse pointer moves over a hot button on the toolbar, the button's appearance
// changes. Toolbars created with just the TBSTYLE_FLAT style will contain
// buttons that are not transparent.
//
// Image list support allows a control greater flexibility for default
// behavior, hot images, and disabled images. Use GetImageList, GetHotImageList,
// and GetDisabledImageList with the transparent toolbar to manipulate
// the image according to its state.
class _XT_EXT_CLASS CXTToolBarCtrl : public CToolBarCtrl
{
DECLARE_DYNAMIC(CXTToolBarCtrl)
public:
// Summary: Constructs a CXTToolBarCtrl object.
CXTToolBarCtrl();
// Summary: Destroys a CXTToolBarCtrl object, handles cleanup and de-allocation.
virtual ~CXTToolBarCtrl();
// BULLETED LIST:
// Input: dwStyle - Specifies the toolbar control’s style. Toolbars must always
// have the WS_CHILD style. In addition, you can specify any combination
// of toolbar styles and window styles.
// rect - Optionally specifies the toolbar control’s size and position.
// It can be either a CRect object or a RECT structure.
// pParentWnd - Specifies the toolbar control’s parent window. It must not be NULL.
// nID - Specifies the toolbar control’s ID.
// Returns: TRUE if successful, otherwise returns FALSE.
// Summary: This member function is used to create a CXTToolBarCtrl. You construct
// a CXTToolBarCtrl in two steps. First, call the constructor. Then,
// call Create, which creates the toolbar control and attaches it to the
// CXTToolBarCtrl object.
//
// The toolbar control automatically sets the size and position of
// the toolbar window. The height is based on the height of the buttons
// in the toolbar. The width is the same as the width of the parent window’s
// client area. The CCS_TOP and CCS_BOTTOM styles determine whether the
// toolbar is positioned along the top or bottom of the client area.
// By default, a toolbar has the CCS_TOP style.
//
// Apply the following window styles to a toolbar control.
// [ul]
// [li]WS_CHILD Always[/li]
// [li]WS_VISIBLE Usually[/li]
// [li]WS_DISABLED Rarely[/li]
// [/ul]
// Next, you may want to apply one or more of the common control styles:
// [ul]
// [li]CCS_ADJUSTABLE Allows toolbars to be customized by the
// user. If this style is used, the toolbar’s owner window must
// handle the customization notification messages sent by the toolbar,
// as described in CXTToolBarCtrl: Handling Customization Notifications.[/li]
// [li]CCS_BOTTOM Causes the control to position itself at
// the bottom of the parent window’s client area and sets the width
// to be the same as the parent window’s width.[/li]
// [li]CCS_NODIVIDER Prevents a two-pixel highlight from being
// drawn at the top of the control.[/li]
// [li]CCS_NOHILITE Prevents a one-pixel highlight from being
// drawn at the top of the control.[/li]
// [li]CCS_NOMOVEY Causes the control to resize and move itself
// horizontally, but not vertically, in response to a WM_SIZE message.
// If the CCS_NORESIZE style is used, this style does not apply.[/li]
// [li]CCS_NOPARENTALIGN Prevents the control from automatically
// moving to the top or bottom of the parent window. Instead, the
// control keeps its position within the parent window despite
// changes to the size of the parent window. If the CCS_TOP or
// CCS_BOTTOM style is also used, the height is adjusted to the
// default, but the position and width remain unchanged.[/li]
// [li]CCS_NORESIZE Prevents the control from using the default
// width and height when setting its initial size or a new size.
// Instead, the control uses the width height specified in the request
// for creation or sizing.[/li]
// [li]CCS_TOP Causes the control to position itself at the
// top of the parent window’client area and sets the width to be
// the same as the parent window’s width. Toolbars have this style
// by default.[/li]
// [/ul]
// Finally, apply a combination of toolbar styles to either the control
// or the buttons themselves. The styles are described in the topic "Toolbar
// Control and Button Styles" in the Platform SDK.
virtual BOOL Create(DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID);
// Returns: A DWORD value that contains the width and height values in the LOWORD
// and HIWORD, respectively.
// Summary: Call this member function to get the size of a toolbar button.
DWORD GetButtonSize() const;
// Returns: A pointer to a CImageList object, or NULL, if no disabled image list is set.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETDISABLEDIMAGELIST, as described in the Platform SDK.
//
// The MFC implementation of GetDisabledImageList uses a CImageList
// object containing the toolbar control's button images, rather than
// a handle to an image list.
CImageList* GetDisabledImageList() const;
// Returns: A pointer to a CImageList object, or NULL, if no disabled
// image list is set.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETHOTIMAGELIST, as described in the Platform SDK.
//
// A hot button appears highlighted when the mouse pointer is above it.
CImageList* GetHotImageList() const;
// Returns: A pointer to a CImageList object, or NULL if no disabled image list is set.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETIMAGELIST, as described in the Platform SDK.
CImageList* GetImageList() const;
// Returns: A DWORD containing a combination of toolbar control styles as described
// in the Platform SDK.
// Summary: Call this member function to get the styles currently applied to
// a toolbar control.
DWORD GetStyle() const;
// Returns: The maximum number of text rows displayed.
// Summary: Call this member function to retrieve the maximum number of text
// rows displayed on a toolbar button.
int GetMaxTextRows() const;
// Input: nID - The command ID for the toolbar button.
// Returns: Nonzero if the button is highlighted, otherwise returns zero.
// Summary: Call this member function to check the highlight state of a toolbar
// button.
BOOL IsButtonHighlighted(int nID) const;
// Input: cxMin - Minimum button width, in pixels. Toolbar buttons will never
// be narrower than this value.
// cxMax - Maximum button width, in pixels. If button text is too wide,
// the control displays it with ellipsis points.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: This member function implements the behavior of the Win32 message
// TB_SETBUTTONWIDTH, as described in the Platform SDK.
BOOL SetButtonWidth(int cxMin,int cxMax);
// Input: pImageList - A pointer to a CImageList object containing the images to be
// used by the toolbar control to display disabled button images.
// Returns: A pointer to a CImageList object that was previously used by the toolbar
// control to display disabled button images.
// Summary: This member function implements the behavior of the Win32 message
// TB_SETDISABLEDIMAGELIST, as described in the Platform SDK.
//
// The MFC implementation of SetDisabledImageList uses a CImageList
// object containing the toolbar control's disabled button images, rather
// than a handle to an image list.
CImageList* SetDisabledImageList(CImageList* pImageList);
// Input: pImageList - A pointer to a CImageList object containing the images to be
// used by the toolbar control to display hot button images.
// Returns: A pointer to a CImageList object that was previously used by the toolbar
// control to display hot button images.
// Summary: This member function implements the behavior of the Win32 message
// TB_SETHOTIMAGELIST, as described in the Platform SDK.
//
// The MFC implementation of SetHotImageList uses a CImageList object
// containing the toolbar control's hot button images, rather than a handle
// to an image list.
//
// A hot button appears highlighted when the pointer is above it.
CImageList* SetHotImageList(CImageList* pImageList);
// Input: pImageList - A pointer to a CImageList object containing the images to be
// used by the toolbar control to display button images in their default
// state.
// Returns: A pointer to a CImageList object that was previously used by the toolbar
// control to display button images in their default state.
// Summary: This member function implements the behavior of the Win32 message
// TB_SETIMAGELIST, as described in the Platform SDK.
//
// The MFC implementation of SetImageList uses a CImageList object
// containing the toolbar control's button images, rather than a handle
// to an image list.
CImageList* SetImageList(CImageList* pImageList);
// Input: ppDropTarget - A pointer to an IDropTarget interface pointer. If an error
// occurs, a NULL pointer is placed in this address.
// Returns: An HRESULT value indicating success or failure of the operation.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETOBJECT, as described in the Platform SDK.
HRESULT GetDropTarget(IDropTarget** ppDropTarget) const;
// Input: iIndent - The value specifying the indentation, in pixels.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: Call this member function to set the indentation for the first button
// in a toolbar control.
BOOL SetIndent(int iIndent);
// Input: iMaxRows - Maximum number of rows to be set.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: Call this member function to set the maximum number of text rows
// displayed on a toolbar button.
BOOL SetMaxTextRows(int iMaxRows);
// Input: dwStyle - A DWORD containing a combination of toolbar control styles,
// as described in the Platform SDK.
// Summary: Call this member function to set the styles for a toolbar control.
void SetStyle(DWORD dwStyle);
// Input: nID - The button identifier.
// ptbbi - A pointer to a TBBUTTONINFO structure that receives the button
// information.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETBUTTONINFO, as described in the Platform SDK.
BOOL GetButtonInfo(int nID,TBBUTTONINFO* ptbbi) const;
// Input: nID - The button identifier.
// ptbbi - A pointer to a TBBUTTONINFO structure that receives the button
// information.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: The member function implements the behavior of the Win32 message
// TB_SETBUTTONINFO, as described in the Platform SDK.
BOOL SetButtonInfo(int nID,TBBUTTONINFO* ptbbi);
// Input: dwMask - A combination of one or more of the DT_ flags, specified in
// the Win32 function, DrawText, that indicates which bits in 'dwDTFlags'
// will be used when drawing the text.
// dwDTFlags - A combination of one or more of the DT_ flags, specified in
// the Win32 function, DrawText, that indicate how the button text will
// be drawn. This value is passed to DrawText when the button text is
// drawn.
// Returns: A DWORD value containing the previous text drawing flags.
// Summary: This member function implements the behavior of the Win32 message
// TB_SETDRAWTEXTFLAGS, as described in the Platform SDK.
//
// This member function sets the flags in the Win32 function DrawText,
// which draws text in the specified rectangle, formatted according to
// how the flags are set.
DWORD SetDrawTextFlags(DWORD dwMask,DWORD dwDTFlags);
// Returns: Nonzero, if anchor highlighting is enabled. If zero, anchor highlighting is
// disabled.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETANCHORHIGHLIGHT, as described in the Platform SDK.
BOOL GetAnchorHighlight() const;
// Input: fAnchor - Specifies if anchor highlighting is enabled or disabled. If
// this value is nonzero, anchor highlighting will be enabled. If this
// value is zero, anchor highlighting will be disabled.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: This member function implements the behavior of the Win32 message
// TB_SETANCHORHIGHLIGHT, as described in the Platform SDK.
BOOL SetAnchorHighlight(BOOL fAnchor = TRUE);
// Returns: The zero-based index of the hot item in a toolbar.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETHOTITEM, as described in the Platform SDK.
int GetHotItem() const;
// Input: nHot - The zero-based index number of the item that will be made hot.
// If this value is -1, none of the items will be hot.
// Returns: The index of the previous hot item, or -1, if there was no hot item.
// Summary: This member function implements the behavior of the Win32 message
// TB_SETHOTITEM, as described in the Platform SDK.
int SetHotItem(int nHot);
// Input: ptbim - A pointer to a TBINSERTMARK structure that receives the insertion mark.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETINSERTMARK, as described in the Platform SDK.
void GetInsertMark(TBINSERTMARK* ptbim) const;
// Input: ptbim - A pointer to the TBINSERTMARK structure that contains the insertion
// mark.
// Summary: This member function implements the behavior of the Win32 message
// TB_SETINSERTMARK, as described in the Platform SDK.
void SetInsertMark(TBINSERTMARK* ptbim);
// Input: pSize - A pointer to a SIZE structure that receives the size of the items.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETMAXSIZE, as described in the Platform SDK.
BOOL GetMaxSize(LPSIZE pSize) const;
// Input: ppt - A pointer to a POINT structure that contains the hit test coordinates,
// relative to the client area of the toolbar.
// ptbim - A pointer to a TBINSERTMARK structure that receives the insertion
// mark information.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: This member function implements the behavior of the Win32 message
// TB_INSERTMARKHITTEST, as described in the Platform SDK.
BOOL InsertMarkHitTest(LPPOINT ppt,LPTBINSERTMARK ptbim) const;
// Returns: A DWORD that represents the extended styles currently in use for the toolbar
// control. For a list of styles, see "Toolbar Extended Styles," in the
// Platform SDK.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETEXTENDEDSTYLE, as described in the Platform SDK.
DWORD GetExtendedStyle() const;
// Input: dwExStyle - A value specifying the new extended styles. This parameter
// can be a combination of the toolbar extended styles.
// Returns: A DWORD value that represents the previous extended styles. For a list of styles,
// see "Toolbar Extended Styles," in the Platform SDK.
// Summary: This member function implements the behavior of the Win32 message
// TB_SETEXTENDEDSTYLE, as described in the Platform SDK.
DWORD SetExtendedStyle(DWORD dwExStyle);
// Returns: A COLORREF value that contains the current insertion mark color.
// Summary: This member function implements the behavior of the Win32 message
// TB_GETINSERTMARKCOLOR, as described in the Platform SDK.
COLORREF GetInsertMarkColor() const;
// Input: clrNew - A COLORREF value that contains the new insertion mark color.
// Returns: A COLORREF value that contains the previous insertion mark color.
// Summary: This member function implements the behavior of the Win32 message
// TB_SETINSERTMARKCOLOR, as described in the Platform SDK.
COLORREF SetInsertMarkColor(COLORREF clrNew);
// Input: chAccel - Accelerator character to be mapped. This character is the same
// character that is underlined in the button's text.
// pIDBtn - A pointer to a UINT that receives the command identifier of
// the button that corresponds to the accelerator specified in 'chAccel
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: This member function implements the behavior of the Win32 message
// TB_MAPACCELERATOR, as described in the Platform SDK.
BOOL MapAccelerator(TCHAR chAccel,UINT* pIDBtn);
// Input: nID - The button identifier.
// bHighlight - Specifies the highlight state to be set. By default, TRUE.
// If set to FALSE, the button is set to its default state.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: This member function implements the behavior of the Win32 message
// TB_MARKBUTTON, as described in the Platform SDK.
BOOL MarkButton(int nID,BOOL bHighlight = TRUE);
// Input: nOldPos - The zero-based index of the button to be moved.
// nNewPos - The zero-based index of the button's destination.
// Returns: Nonzero if successful, otherwise returns zero.
// Summary: This member function implements the behavior of the Win32 message
// TB_MOVEBUTTON, as described in the Platform SDK.
BOOL MoveButton(UINT nOldPos,UINT nNewPos);
// Input: ppt - A pointer to a POINT structure that contains the x-coordinate
// of the hit test in the x member and the y-coordinate of the hit test
// in the y member. The coordinates are relative to the toolbar's client
// area.
// Returns: An integer value indicating the location of a point on a toolbar. If the
// value is zero or a positive value, this return value is the zero-based index
// of the non-separator item in which the point lies. If the return value is
// negative, the point does not lie within a button. The absolute value
// of the return value is the index of a separator item or the nearest
// non-separator item.
// Summary: This member function implements the behavior of the Win32 message
// TB_HITTEST, as described in the Platform SDK.
int HitTest(LPPOINT ppt) const;
// Ignore:
//{{AFX_VIRTUAL(CXTToolBarCtrl)
//}}AFX_VIRTUAL
protected:
// Ignore:
//{{AFX_MSG(CXTToolBarCtrl)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////
AFX_INLINE DWORD CXTToolBarCtrl::GetButtonSize() const {
ASSERT(::IsWindow(m_hWnd)); return (DWORD) ::SendMessage(m_hWnd, TB_GETBUTTONSIZE, 0, 0L);
}
AFX_INLINE CImageList* CXTToolBarCtrl::GetDisabledImageList() const {
ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST) ::SendMessage(m_hWnd, TB_GETDISABLEDIMAGELIST, 0, 0));
}
AFX_INLINE CImageList* CXTToolBarCtrl::GetHotImageList() const {
ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST) ::SendMessage(m_hWnd, TB_GETHOTIMAGELIST, 0, 0));
}
AFX_INLINE CImageList* CXTToolBarCtrl::GetImageList() const {
ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST) ::SendMessage(m_hWnd, TB_GETIMAGELIST, 0, 0));
}
AFX_INLINE DWORD CXTToolBarCtrl::GetStyle() const {
ASSERT(::IsWindow(m_hWnd)); return (DWORD) ::SendMessage(m_hWnd, TB_GETSTYLE, 0, 0L);
}
AFX_INLINE int CXTToolBarCtrl::GetMaxTextRows() const {
ASSERT(::IsWindow(m_hWnd)); return (INT) ::SendMessage(m_hWnd, TB_GETTEXTROWS, 0, 0L);
}
AFX_INLINE BOOL CXTToolBarCtrl::IsButtonHighlighted(int nID) const {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_ISBUTTONHIGHLIGHTED, nID, 0);
}
AFX_INLINE BOOL CXTToolBarCtrl::SetButtonWidth(int cxMin, int cxMax) {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_SETBUTTONWIDTH, 0, MAKELPARAM(cxMin, cxMax));
}
AFX_INLINE CImageList* CXTToolBarCtrl::SetHotImageList(CImageList* pImageList) {
ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST) ::SendMessage(m_hWnd, TB_SETHOTIMAGELIST, 0, (LPARAM)pImageList->GetSafeHandle()));
}
AFX_INLINE CImageList* CXTToolBarCtrl::SetImageList(CImageList* pImageList) {
ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST) ::SendMessage(m_hWnd, TB_SETIMAGELIST, 0, (LPARAM)pImageList->GetSafeHandle()));
}
AFX_INLINE BOOL CXTToolBarCtrl::SetIndent(int iIndent) {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_SETINDENT, iIndent, 0L);
}
AFX_INLINE BOOL CXTToolBarCtrl::SetMaxTextRows(int iMaxRows) {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_SETMAXTEXTROWS, iMaxRows, 0L);
}
AFX_INLINE void CXTToolBarCtrl::SetStyle(DWORD dwStyle) {
ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TB_SETSTYLE, 0, dwStyle);
}
AFX_INLINE BOOL CXTToolBarCtrl::GetButtonInfo(int nID, TBBUTTONINFO* ptbbi) const {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_GETBUTTONINFO, nID, (LPARAM)ptbbi);
}
AFX_INLINE BOOL CXTToolBarCtrl::SetButtonInfo(int nID, TBBUTTONINFO* ptbbi) {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_SETBUTTONINFO, nID, (LPARAM)ptbbi);
}
AFX_INLINE DWORD CXTToolBarCtrl::SetDrawTextFlags(DWORD dwMask, DWORD dwDTFlags) {
ASSERT(::IsWindow(m_hWnd)); return (DWORD) ::SendMessage(m_hWnd, TB_SETDRAWTEXTFLAGS, dwMask, dwDTFlags);
}
AFX_INLINE BOOL CXTToolBarCtrl::GetAnchorHighlight() const {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_GETANCHORHIGHLIGHT, 0, 0);
}
AFX_INLINE BOOL CXTToolBarCtrl::SetAnchorHighlight(BOOL fAnchor) {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_SETANCHORHIGHLIGHT, fAnchor, 0);
}
AFX_INLINE int CXTToolBarCtrl::GetHotItem() const {
ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TB_GETHOTITEM, 0, 0);
}
AFX_INLINE int CXTToolBarCtrl::SetHotItem(int nHot) {
ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TB_SETHOTITEM, nHot, 0);
}
AFX_INLINE void CXTToolBarCtrl::GetInsertMark(TBINSERTMARK* ptbim) const {
ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TB_GETINSERTMARK, 0, (LPARAM)ptbim);
}
AFX_INLINE void CXTToolBarCtrl::SetInsertMark(TBINSERTMARK* ptbim) {
ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TB_SETINSERTMARK, 0, (LPARAM)ptbim);
}
AFX_INLINE BOOL CXTToolBarCtrl::GetMaxSize(LPSIZE pSize) const {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_GETMAXSIZE, 0, (LPARAM)pSize);
}
AFX_INLINE BOOL CXTToolBarCtrl::InsertMarkHitTest(LPPOINT ppt, LPTBINSERTMARK ptbim) const {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_INSERTMARKHITTEST, (WPARAM)ppt, (LPARAM)ptbim);
}
AFX_INLINE DWORD CXTToolBarCtrl::GetExtendedStyle() const {
ASSERT(::IsWindow(m_hWnd)); return (DWORD) ::SendMessage(m_hWnd, TB_GETEXTENDEDSTYLE, 0, 0L);
}
AFX_INLINE DWORD CXTToolBarCtrl::SetExtendedStyle(DWORD dwExStyle) {
ASSERT(::IsWindow(m_hWnd)); return (DWORD) ::SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, dwExStyle);
}
AFX_INLINE COLORREF CXTToolBarCtrl::GetInsertMarkColor() const {
ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, TB_GETINSERTMARKCOLOR, 0, 0);
}
AFX_INLINE COLORREF CXTToolBarCtrl::SetInsertMarkColor(COLORREF clrNew) {
ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, TB_SETINSERTMARKCOLOR, 0, (LPARAM) clrNew);
}
AFX_INLINE BOOL CXTToolBarCtrl::MapAccelerator(TCHAR chAccel, UINT* pIDBtn) {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_MAPACCELERATOR, (WPARAM)chAccel, (LPARAM)pIDBtn);
}
AFX_INLINE BOOL CXTToolBarCtrl::MarkButton(int nID, BOOL bHighlight) {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_MARKBUTTON, nID, MAKELPARAM(bHighlight, 0));
}
AFX_INLINE BOOL CXTToolBarCtrl::MoveButton(UINT nOldPos, UINT nNewPos) {
ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, TB_MOVEBUTTON, nOldPos, nNewPos);
}
AFX_INLINE int CXTToolBarCtrl::HitTest(LPPOINT ppt) const {
ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, TB_HITTEST, 0, (LPARAM)ppt);
}
//////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // #if !defined(__XTTOOLBARCTRL_H__)