CMFCToolBar
类
CMFCToolBar
类类似于 CToolBar
类,但为用户界面功能提供额外支持。 其中包括平面工具栏、有热图的工具栏、大图标、页导航按钮、锁定的工具栏、Rebar 控件、图像下的文本、背景图像和选项卡式工具栏。 CMFCToolBar
类还包含内置支持,用户可对工具栏和菜单、工具栏和菜单之间的拖放、组合框按钮、编辑框按钮、颜色选取器和汇总按钮进行自定义。
有关更多详细信息,请参阅 Visual Studio 安装(例如,%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\atlmfc\src\mfc
)中的源代码。
语法
class CMFCToolBar : public CMFCBaseToolBar
成员
公共构造函数
名称 | 描述 |
---|---|
CMFCToolBar::CMFCToolBar |
默认构造函数。 |
CMFCToolBar::~CMFCToolBar |
析构函数。 |
公共方法
受保护方法
名称 | 描述 |
---|---|
CMFCToolBar::AllowShowOnList |
确定工具栏是否显示在“自定义”对话框的“工具栏”窗格上的列表中。 |
CMFCToolBar::CalcMaxButtonHeight |
计算工具栏中的按钮的最大高度。 |
CMFCToolBar::DoPaint |
重新绘制工具栏。 |
CMFCToolBar::DrawButton |
重新绘制工具栏按钮。 |
CMFCToolBar::DrawSeparator |
重新绘制工具栏上的分隔符。 |
CMFCToolBar::OnUserToolTip |
当即将显示按钮的工具提示时由框架调用。 |
数据成员
名称 | 描述 |
---|---|
CMFCToolBar::m_bDontScaleImages |
指定是否在高 DPI 模式下缩放工具栏图像。 |
CMFCToolBar::m_dblLargeImageRatio |
指定大型图像的维度(高度或宽度)与常规图像的维度之间的比率。 |
注解
若要将 CMFCToolBar
对象合并到应用程序中,请执行以下步骤:
将
CMFCToolBar
对象添加到主框架窗口。处理主框架窗口的 WM_CREATE 消息时,调用
CMFCToolBar::Create
或CMFCToolBar::CreateEx
以创建工具栏并指定其样式。调用
CBasePane::EnableDocking
以指定停靠样式。
若要插入特殊按钮(例如组合框或下拉工具栏),请在父级资源中保留虚拟按钮,并使用 CMFCToolBar::ReplaceButton
在运行时替换虚拟按钮。 有关详细信息,请参阅演练:将控件放在工具栏上。
CMFCToolBar
是 MFC 库类 CMFCMenuBar
类、CMFCPopupMenuBar
类和 CMFCDropDownToolBar
类的基类。
示例
下面的示例演示了如何使用 CMFCToolBar
类中的各种方法。 该示例演示如何设置工具栏的窗口标签的文本、设置边框、设置窗格的样式,以及启用工具栏末尾显示的“添加或删除按钮”按钮。 此代码片段是 IE 演示示例的一部分。
CMFCToolBar m_wndToolBar;
m_wndToolBar.SetWindowText(_T("Standard"));
m_wndToolBar.SetBorders();
//------------------------------------
// Remove toolbar gripper and borders:
//------------------------------------
m_wndToolBar.SetPaneStyle(m_wndToolBar.GetPaneStyle() &
~(CBRS_GRIPPER | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT));
m_wndToolBar.EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, _T("Customize..."));
要求
标头:afxtoolbar.h
继承层次结构
CMFCToolBar
CMFCToolBar::AddBasicCommand
将菜单命令添加到用户打开菜单时始终显示的命令列表。
static void __stdcall AddBasicCommand(UINT uiCmd);
参数
uiCmd
[in] 指定要添加的命令。
备注
打开菜单时,始终显示基本命令。 当用户选择查看最近使用的命令时,此方法有意义。
使用 CMFCToolBar::SetBasicCommands
方法设置用户打开菜单时始终显示的命令列表。 使用 CMFCToolBar::GetBasicCommands
方法检索应用程序使用的基本命令的列表。
CMFCToolBar::AddCommandUsage
按 1 递增与给定命令关联的计数器。
static void __stdcall AddCommandUsage(UINT uiCommand);
参数
uiCommand
[in] 指定要递增的命令计数器。
注解
当用户选择菜单项时,框架会调用此方法。
框架使用命令计数器显示最近使用的菜单项。
此方法使用 CMFCCmdUsageCount::AddCmd
方法递增命令计数器。
CMFCToolBar::AddToolBarForImageCollection
将用户界面资源中的图像添加到应用程序中的图像集合。
static BOOL __stdcall AddToolBarForImageCollection(
UINT uiResID,
UINT uiBmpResID=0,
UINT uiColdResID=0,
UINT uiMenuResID=0,
UINT uiDisabledResID=0,
UINT uiMenuDisabledResID=0);
参数
uiResID
[in] 具有要加载的图像的工具栏的资源 ID。
uiBmpResID
[in] 具有工具栏图像的位图的资源 ID。
uiColdResID
[in] 具有“冷”工具栏图像的位图的资源 ID。
uiMenuResID
[in] 具有菜单图像的位图的资源 ID。
uiDisabledResID
[in] 具有已禁用工具栏图像的位图的资源 ID。
uiMenuDisabledResID
[in] 具有已禁用菜单图像的位图的资源 ID。
返回值
如果该方法成功,则为 TRUE
;如果 uiResID
或 uiBmpResID
未指定有效的资源,或发生另一个错误,则为 FALSE
。
备注
调用此方法以加载具有工具栏图像的位图,并将其添加到工具栏图像的集合。 此方法创建临时工具栏对象并调用 CMFCToolBar::LoadToolBar
。
CMFCToolBar::AdjustLayout
重新计算工具栏的大小和位置。
virtual void AdjustLayout();
注解
创建工具栏以重新计算其大小和位置时调用此方法。
每次必须更改工具栏布局时,框架都会调用此方法。 例如,当用户移动另一个控件栏、调整应用程序窗口大小或自定义工具栏时,布局必须更改。
重写此方法以在派生自 CMFCToolbar
的类中提供你自己的动态布局。
CMFCToolBar::AdjustSize
重新计算工具栏的大小。
void AdjustSize();
注解
此方法确保工具栏适合父框架的边界。 如果工具栏没有父框架,则此方法不执行任何操作。
如果工具栏的父级不是 CMFCToolBar::AdjustLayout
对象,则 CMFCReBar
方法将调用此方法以重新计算大小。
CMFCToolBar::AllowChangeTextLabels
指定是否可以在工具栏按钮上的图像下显示文本标签。
virtual BOOL AllowChangeTextLabels() const;
返回值
如果允许在图像下面显示文本标签,则为 TRUE
;否则为 FALSE
。
注解
此方法由“自定义”对话框调用以确定是否在所选工具栏的“工具栏”页上启用“显示文本标签”复选框。
默认实现返回 TRUE
。
当不希望用户决定是否在图像下的工具栏按钮上显示文本标签时,在派生自 CMFCToolBar
的对象中重写此方法并返回 FALSE
。
CMFCToolBar::AllowShowOnList
确定工具栏是否显示在“自定义”对话框的“工具栏”窗格上的工具栏列表中。
virtual BOOL AllowShowOnList() const;
返回值
如果可以在工具栏自定义页上的列表框中显示工具栏对象,则为 TRUE
;否则为 FALSE
。
备注
框架调用此方法,以确定工具栏自定义页上的列表是否应包含派生自 CMFCToolBar
的特定对象。
默认实现始终返回 TRUE
。 当不希望工具栏显示在“自定义”对话框中的工具栏列表中,重写此方法。
CMFCToolBar::AreTextLabels
指定图像下的文本标签当前是否显示在工具栏按钮上。
BOOL AreTextLabels() const;
返回值
如果工具栏按钮在图像下面显示文本标签,则为 TRUE
;否则为 FALSE
。
备注
使用 CMFCToolBar::EnableTextLabels
指定是否显示文本。 默认值为 FALSE
。 调用 CMFCToolBar::AllowChangeTextLabels
以指定用户是否可以在“自定义”对话框中更改此设置。
CMFCToolBar::AutoGrayInactiveImages
启用或禁用非活动按钮图像的自动生成。
static void AutoGrayInactiveImages(
BOOL bEnable=TRUE,
int nGrayImagePercentage=0,
BOOL bRedrawAllToolbars=TRUE);
参数
bEnable
[in] 一个布尔值,该值指定是否使非活动图像变暗。 如果此参数为 TRUE
,非活动图像将变暗。 否则,非活动图像不会变暗。
nGrayImagePercentage
[in] 指定非活动图像的亮度百分比。 如果 bEnable
为 FALSE
,则忽略此值。
bRedrawAllToolbars
[in] 一个布尔值,该值指定是否重新绘制应用程序中的所有工具栏。 如果此参数为 TRUE
,此方法将重新绘制所有工具栏。
备注
如果 bEnable
为 TRUE
,则框架使用 nGrayImagePercentage
从常规图像生成非活动图像。 否则,必须使用 CMFCToolBar::GetColdImages
方法提供一组非活动图像。 默认情况下禁用此选项。
有关 nGrayImagePercentage
参数的更多信息,请参见CMFCToolBarImages::GrayImages
。
CMFCToolBar::ButtonToIndex
返回此工具栏中指定的 CMFCToolBarButton
类对象的索引。
int ButtonToIndex(const CMFCToolBarButton* pButton) const;
参数
pButton
[in] 指向工具栏按钮对象的指针。
返回值
工具栏按钮的内部列表中的 pButton
的索引;如果指定的按钮不在此工具栏上,则为 -1。
CMFCToolBar::CalcFixedLayout
计算工具栏的水平大小。
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
参数
bStretch
[in] 如果将工具栏拉伸到父框架的大小,则为 TRUE
。
bHorz
[in] 如果水平定位工具栏,则为 TRUE
;如果垂直定位工具栏,则为 FALSE
。
返回值
指定工具栏大小的 CSize
对象。
注解
此方法使用 CMFCToolBar::CalcLayout
方法计算工具栏的大小。 如果 bStretch
为 TRUE
,则将传递 dwMode
参数的 LM_STRETCH
标志。 如果 bHorz
为 TRUE
,则将传递 LM_HORZ
标志。
有关使用此方法的示例,请参阅 VisualStudioDemo 示例。
CMFCToolBar::CalcMaxButtonHeight
计算工具栏中的按钮的最大高度。
virtual int CalcMaxButtonHeight();
返回值
按钮的最大高度。
备注
此方法计算工具栏上所有工具栏按钮的最大高度。 高度可能因当前工具栏停靠状态等因素而异。
在派生自 CMFCToolBar
的类中重写此方法以提供你自己的高度计算。
CMFCToolBar::CalcSize
在布局计算过程中由框架调用。
virtual CSize CalcSize(BOOL bVertDock);
参数
bVertDock
[in] 如果指定垂直停靠工具栏,则为 TRUE
;如果指定水平停靠工具栏,则为 FALSE
。
返回值
指定工具栏上按钮的整体大小的 CSize
对象。
备注
此方法考虑影响每个按钮的大小的属性,例如文本标签的区域和边框大小。
如果工具栏不包含任何按钮,则此方法使用 CMFCToolBar::GetButtonSize
方法返回单个按钮的保留大小。
CMFCToolBar::CanBeClosed
指定用户是否可以关闭工具栏。
virtual BOOL CanBeClosed() const;
返回值
如果用户可以关闭工具栏,则为 TRUE
;否则为 FALSE
。
备注
框架调用此方法以确定用户是否可以关闭工具栏。 如果该方法返回 TRUE
,则框架在工具栏的系统菜单中启用 SC_CLOSE
命令,并且用户可以使用“自定义”对话框中的工具栏列表中的复选框关闭工具栏。
默认实现返回 TRUE
。 在派生自 CMFCToolBar
的类中重写此方法,使用户无法关闭工具栏对象。
CMFCToolBar::CanBeRestored
确定系统是否可以在自定义后将工具栏还原到其原始状态。
virtual BOOL CanBeRestored() const;
返回值
如果可以从应用程序资源还原工具栏,则为 TRUE
;否则为 FALSE
。
备注
框架调用此方法,以确定工具栏是否可以在自定义后返回到其原始状态。 原始状态是从应用程序资源加载的。
如果 CanBeRestored
返回 TRUE
,则“自定义”对话框的“工具栏”页将为所选工具栏启用“重置”按钮。
如果工具栏在加载时的原始资源 ID 为非零,则默认实现返回 TRUE
。 通常,只有用户定义的工具栏不能还原。
可以重写 CanBeRestored
方法以在派生类中自定义此行为。
CMFCToolBar::CanFocus
指定窗格是否可以接收焦点。
virtual BOOL CanFocus() const;
返回值
此方法返回 FALSE
。
注解
此方法重写基类实现 CBasePane::CanFocus
,因为工具栏对象无法接收焦点。
CMFCToolBar::CanHandleSiblings
确定工具栏和其同级是否定位在同一窗格上。
BOOL CanHandleSiblings();
返回值
如果该工具栏具有同级,并且该工具栏及其同级位于同一个窗格上,则为 TRUE
;否则为 FALSE
。
备注
内部的 CMFCCustomizeButton::CreatePopupMenu
方法调用此方法,以确定如何显示“自定义”弹出菜单。 如果此方法返回 TRUE
,则框架显示“在一行上显示按钮”或“分两行显示按钮”按钮。
通常不需要使用此方法。 若要启用工具栏上显示的“自定义”按钮,请调用 CMFCToolBar::EnableCustomizeButton
方法。 若要启用“在一行上显示按钮”或“分两行显示按钮”按钮,请调用 CMFCToolBar::SetSiblingToolBar
。
CMFCToolBar::CleanUpImages
释放为工具栏图像分配的系统资源。
static void CMFCToolBar::CleanUpImages();
备注
当应用程序关闭时,框架将调用此方法。
CMFCToolBar::CleanUpLockedImages
释放为锁定的工具栏图像分配的系统资源。
void CleanUpLockedImages();
备注
应用程序的视觉样式更改时调用此方法。 有关使用此方法的示例,请参阅 VisualStudioDemo 示例。
CMFCToolBar::CommandToIndex
返回工具栏中具有指定命令 ID 的按钮的索引。
int CommandToIndex(
UINT nIDFind,
int iIndexFirst=0) const;
参数
nIDFind
[in] 指定命令 ID。
iIndexFirst
[in] 指定要从其开始的初始索引。
返回值
如果该方法成功,则为工具栏按钮的从零开始的索引;如果没有具有指定 ID 的按钮,则为 -1。
注解
CMFCToolBar
对象维护工具栏上按钮的内部列表。 调用此函数以在给定按钮的命令 ID 的情况下检索列表中按钮的索引。
如果 iIndex
大于 0,则此方法将忽略工具栏上索引小于 iIndex
的任何按钮。
CMFCToolBar::Create
创建一个 CMFCToolBar
对象。
virtual BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle=AFX_DEFAULT_TOOLBAR_STYLE,
UINT nID=AFX_IDW_TOOLBAR);
参数
pParentWnd
[in] 指向工具栏的父窗口的指针。
dwStyle
[in] 工具栏样式。 有关样式列表,请参阅 Windows SDK 中的工具栏控件和按钮样式。
nID
[in] 工具栏的子窗口的 ID。
返回值
如果此方法成功,则为 TRUE
;否则为 FALSE
。
备注
此方法创建控件栏并将其附加到工具栏。 它创建具有 TBSTYLE_FLAT 样式的控件条。 如果需要其他控件条样式,请调用 CMFCToolBar::CreateEx
。
CMFCToolBar::CreateEx
创建使用其他样式选项的 CMFCToolBar
对象,例如大图标。
virtual BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle=TBSTYLE_FLAT,
DWORD dwStyle=AFX_DEFAULT_TOOLBAR_STYLE,
CRect rcBorders=CRect(1,
1,
1,
1),
UINT nID=AFX_IDW_TOOLBAR);
参数
pParentWnd
[in] 指向工具栏的父窗口的指针。
dwCtrlStyle
[in] 用于创建嵌入式控件条对象的其他样式。
dwStyle
[in] 工具栏样式。 有关相应样式的列表,请参阅工具栏控件和按钮样式。
rcBorders
[in] 指定工具栏窗口边框的宽度的 CRect
对象。
nID
[in] 工具栏的子窗口的 ID。
返回值
如果此方法成功,则为非零;否则为 0。
注解
此方法创建控件栏并将其附加到工具栏。
当想要提供特定样式时,调用此方法,而不是 CMFCToolBar::Create
。 例如,将 dwCtrlStyle
设置为 TBSTYLE_FLAT
| TBSTYLE_TRANSPARENT
以创建类似于 Internet Explorer 4 使用的工具栏的工具栏。
示例
下面的示例演示如何使用 CMFCToolBar
类的 CreateEx
方法。 此代码片段是 IE 演示示例的一部分。
CMFCToolBar m_wndToolBar;
// The this pointer points to CMainFrame class which extends the CFrameWnd class.
if (!m_wndToolBar.CreateEx(this, TBSTYLE_TRANSPARENT) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME, uiToolbarColdID, uiMenuID,
FALSE /* Not locked */, 0, 0, uiToolbarHotID))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
CMFCToolBar::Deactivate
停用工具栏。
virtual void Deactivate();
备注
此方法通过从突出显示的工具栏按钮中删除焦点来停用工具栏。 当工具栏丢失焦点或被销毁时,框架将调用此方法。
CMFCToolBar::DoPaint
重新绘制工具栏。
virtual void DoPaint(CDC* pDC);
参数
pDC
[in] 指向设备上下文的指针。
注解
当必须重新绘制工具栏的一部分时,框架将调用此方法。
重写此方法以自定义派生自 CMFCToolBar
的对象的外观。
CMFCToolBar::DrawButton
重新绘制工具栏按钮。
virtual BOOL DrawButton(
CDC* pDC,
CMFCToolBarButton* pButton,
CMFCToolBarImages* pImages,
BOOL bHighlighted,
BOOL bDrawDisabledImages);
参数
pDC
[in] 指向设备上下文的指针。
pButton
[in] 指向要绘制的按钮的指针。
pImages
[in] 指向工具栏图像的指针。
bHighlighted
[in] 如果突出显示按钮,则为 TRUE
;否则为 FALSE
。
bDrawDisabledImages
[in] 如果已禁用的按钮变暗,则为 TRUE
;否则为 FALSE
。
返回值
如果重新绘制了按钮,则为 TRUE
;如果按钮处于隐藏状态,则为 FALSE
。
注解
当必须重新绘制工具栏按钮时,CMFCToolBar::DrawButton
方法将调用此方法。
如果要自定义工具栏上按钮的外观,请重写此方法。
CMFCToolBar::DrawSeparator
重新绘制工具栏上的分隔符。
virtual void DrawSeparator(
CDC* pDC,
const CRect& rect,
BOOL bHorz);
参数
pDC
[in] 指向设备上下文的指针。
rect
[in] 绘制分隔符的位置的边界矩形(以像素为单位)。
bHorz
[in] 如果分隔符处于水平状态,则为 TRUE
;如果分隔符处于垂直状态,则为 FALSE
。
备注
CMFCToolBar::DoPaint
为具有 TBBS_SEPARATOR
样式的每个 CMFCToolBar::DrawSeparator
对象调用此方法,而不是为这些按钮调用 CMFCToolBar::DrawButton
。
在派生自 CMFCToolBar
的类中重写此方法以自定义工具栏上的分隔符的外观。 默认实现调用 CMFCVisualManager::OnDrawSeparator
以绘制其外观由当前视觉对象管理器确定的分隔符。
CMFCToolBar::EnableCustomizeButton
启用或禁用工具栏上显示的“自定义”按钮。
void EnableCustomizeButton(
BOOL bEnable,
int iCustomizeCmd,
const CString& strCustomizeText,
BOOL bQuickCustomize=TRUE);
void EnableCustomizeButton(
BOOL bEnable,
int iCustomizeCmd,
UINT uiCustomizeTextResId,
BOOL bQuickCustomize=TRUE);
参数
bEnable
[in] 启用或禁用“自定义”按钮。
iCustomizeCmd
[in] “自定义”按钮的命令 ID。
strCustomizeText
[in] “自定义”按钮的文本标签。
uiCustomizeTextResId
[in] “自定义”按钮标签的资源字符串 ID。
bQuickCustomize
[in] 启用或禁用从按钮下拉的菜单上的“添加或删除按钮”选项。
备注
如果 iCustomizeCmd
为 -1,则当多个工具栏按钮不适合工具栏区域时,框架会显示“自定义”按钮。 该按钮显示左指双箭头或 V 形,指示有更多按钮。
如果 iCustomizeCmd
指定有效的命令 ID,并且 bEnable
为 TRUE
,则始终显示“自定义”按钮。 该按钮有一个较小的向下箭头,并打开包含命令的菜单。 此命令使用由 strCustomizeText
. 指定的文本标签。 如果 bQuickCustomize
也是 TRUE
,菜单将显示“添加或删除按钮”选项。
框架动态地将不适合工具栏区域的任何按钮添加到菜单中 iCustomizeCmd
指定的项之前。 V 形显示在向下箭头旁边。
CMFCToolBar::EnableDocking
启用将窗格停靠到主框架。
virtual void EnableDocking(DWORD dwAlignment);
参数
dwAlignment
[in] 指定要启用的停靠对齐方式。
备注
此方法通过将 CBasePane::m_dwControlBarStyle
数据成员设置为 CBasePane::EnableDocking
来扩展基类实现AFX_CBRS_FLOAT
。 然后,此方法将 dwAlignment
传递给基类实现。
CMFCToolBar::EnableLargeIcons
启用或禁用工具栏按钮上的大图标。
void EnableLargeIcons(BOOL bEnable);
参数
bEnable
[in] 如果启用大图标,则为 TRUE
;如果禁用大图标,则为 FALSE
。
注解
默认情况下,大图标处于启用状态。
CMFCToolBar::EnableQuickCustomization
启用或禁用工具栏的快速自定义,以便用户可以按 Alt 键并将按钮拖动到新位置。
static void EnableQuickCustomization(BOOL bEnable=TRUE);
参数
bEnable
[in] 如果启用快速自定义,则为 TRUE
;如果禁用快速自定义,则为 FALSE
。
CMFCToolBar::EnableReflections
启用或禁用命令反射。
void EnableReflections(BOOL bEnable = TRUE);
参数
bEnable
[in] 如果启用命令反射,则为 TRUE
;如果禁用命令反射,则为 FALSE
。
备注
调用此方法以为包含嵌入式控件(如组合框)的工具栏按钮启用命令反射。
有关命令反射的详细信息,请参阅 TN062:Windows 控件的消息反射。
CMFCToolBar::EnableTextLabels
启用或禁用工具栏按钮图像下的文本标签。
void EnableTextLabels(BOOL bEnable=TRUE);
参数
bEnable
如果文本标签显示在工具栏按钮图像下,则为 TRUE
;否则为 FALSE
。
备注
如果启用了文本标签,则会放大工具栏上的所有按钮,为要显示在图像下的标签提供空间。 “自定义”对话框在“工具栏”页上具有“显示文本标签”复选框。 当用户选择工具栏并选中此选项时,框架会为所选工具栏调用 EnableTextLabels
。 可以通过从 CMFCToolBar::AllowChangeTextLabels
返回 FALSE
来禁用派生自 CMFCToolBar
的对象的复选框。
CMFCToolBar::FromHandlePermanent
检索指向包含给定窗口句柄的 CMFCToolBar
对象的指针。
static CMFCToolBar* __stdcall FromHandlePermanent(HWND hwnd);
参数
hwnd
[in] 要查找的窗口句柄。
返回值
指向包含给定窗口句柄的 CMFCToolBar
对象的指针,如果不存在相应的 CMFCToolBar
对象,则为 NULL
。
备注
此共享方法为包含给定窗口句柄的 CMFCToolBar
对象检查应用程序中的每个工具栏。
CMFCToolBar::GetAllButtons
返回工具栏中按钮的只读列表。
const CObList& GetAllButtons() const;
返回值
对 CObList
类对象的常量引用,其中包含 CMFCToolBarButton
类对象的集合。
CMFCToolBar::GetAllToolbars
返回应用程序中的所有工具栏的只读列表。
static const CObList& GetAllToolbars();
返回值
对 CObList
类对象的常量引用,其中包含 CMFCToolBar
对象的集合。
CMFCToolBar::GetBasicCommands
返回应用程序中定义的基本命令的只读列表。
static const CList<UINT,UINT>& GetBasicCommands();
返回值
对 CList
类对象的常量引用,其中包含基本命令的集合。
备注
通过调用 CMFCToolBar::AddBasicCommand
或 CMFCToolBar::SetBasicCommands
添加基本命令。
CMFCToolBar::GetButton
返回指向指定索引处的 CMFCToolBarButton
类对象的指针。
CMFCToolBarButton* GetButton(int iIndex) const;
参数
iIndex
[in] 指定要返回的按钮的索引。
返回值
指向工具栏按钮的指针(如果存在);如果没有此类按钮,则为 NULL
。
CMFCToolBar::GetButtonInfo
返回指定索引处的按钮的命令 ID、样式和图像索引。
void GetButtonInfo(
int nIndex,
UINT& nID,
UINT& nStyle,
int& iImage) const;
参数
nIndex
[in] 指定工具栏上按钮列表中的按钮的索引。
nID
[out] 按钮的命令 ID。
nStyle
[out] 按钮的样式。
iImage
[out] 按钮的图像的索引。
注解
GetButtonInfo
方法查找指定索引处的工具栏按钮并检索按钮的命令 ID、样式和图像索引。
如果指定索引处的按钮不存在,则框架会将 nID
和 nStyle
设置为 0,并在返回该方法时将 iImage
设置为 -1。
CMFCToolBar::GetButtonSize
返回工具栏上每个按钮的维度。
CSize GetButtonSize() const;
返回值
指定工具栏上每个按钮的维度的 CSize
类对象。
备注
调用 CMFCToolBar::SetSizes
或 CMFCToolBar::SetLockedSizes
以设置工具栏上每个按钮的维度。
CMFCToolBar::GetButtonStyle
返回位于指定索引处的工具栏按钮的当前样式。
UINT GetButtonStyle(int nIndex) const;
参数
nIndex
[in] 指定工具栏按钮的索引。
返回值
指定工具栏按钮的样式的值。 。 有关可能样式的列表,请参阅工具栏控件样式。
备注
调用 CMFCToolBar::SetButtonStyle
以设置工具栏按钮的样式
CMFCToolBar::GetButtonText
返回具有指定索引的按钮的文本标签。
CString GetButtonText(int nIndex) const;
void GetButtonText(
int nIndex,
CString& rString) const;
参数
nIndex
[in] 工具栏按钮的索引。
rString
[out] 工具栏按钮的标签文本。
返回值
工具栏按钮的标签文本。
备注
调用 CMFCToolBar::SetButtonText
或 CMFCToolBar::SetToolBarBtnText
以设置文本标签。
CMFCToolBar::GetColdImages
返回指向应用程序中冷工具栏按钮图像集合的指针。
static CMFCToolBarImages* GetColdImages();
返回值
指向冷工具栏按钮图像的集合的指针。
备注
冷图像是用户不与工具栏按钮交互时使用的图像。 调用 CMFCToolBar::LoadBitmapEx
或 CMFCToolBar::LoadBitmap
可加载冷图像。
CMFCToolBar::GetColumnWidth
返回工具栏按钮的宽度。
virtual int GetColumnWidth() const;
返回值
指定工具栏按钮的宽度的值。
注解
框架调用此方法以计算工具栏布局。 在派生类中重写此方法,为工具栏指定不同的列宽。
CMFCToolBar::GetCommandButtons
返回应用程序中所有工具栏的按钮列表,这些按钮具有指定命令 ID。
static int GetCommandButtons(
UINT uiCmd,
CObList& listButtons);
参数
uiCmd
[in] 按钮的命令 ID。
listButtons
[out] 对 CObList
类对象的引用,该对象接收工具栏按钮的列表。
返回值
具有指定命令 ID 的按钮数。
CMFCToolBar::GetCount
返回工具栏上的按钮数和分隔符数。
int GetCount() const;
返回值
工具栏上的按钮和分隔符数。
CMFCToolBar::GetCustomizeButton
检索指向与工具栏关联的 CMFCCustomizeButton
对象的指针。
CMFCCustomizeButton* GetCustomizeButton();
返回值
指向与工具栏关联的 CMFCCustomizeButton
对象的指针。
备注
此方法检索工具栏末尾显示的“自定义”按钮。 使用 CMFCToolBar::EnableCustomizeButton
方法将“自定义”按钮添加到工具栏。
可以调用 CMFCToolBar::IsExistCustomizeButton
方法来确定工具栏是否包含有效的 CMFCCustomizeButton
对象。
CMFCToolBar::GetDefaultImage
返回具有指定命令 ID 的工具栏按钮的默认图像的索引。
static int GetDefaultImage(UINT uiID);
参数
uiID
[in] 指定按钮的命令 ID。
返回值
工具栏图像在共享列表中的索引。
备注
使用此共享方法检索具有指定命令 ID 的工具栏按钮的默认图像的索引。 返回值是应用程序中所有工具栏的工具栏按钮图像共享集合中的索引。 调用 CMFCToolBar::GetImages
方法以获取指向此集合的指针。
CMFCToolBar::GetDisabledImages
返回指向用于应用程序中已禁用工具栏按钮图像集合的指针。
static CMFCToolBarImages* __stdcall GetDisabledImages();
返回值
指向已禁用工具栏按钮图像集合的指针。
注解
使用 CMFCToolBarEditBoxButton
类和 CMFCToolBar::LoadBitmap
方法加载已禁用的工具栏按钮图像。
CMFCToolBar::GetDisabledMenuImages
返回指向用于应用程序中已禁用菜单按钮图像集合的指针。
static CMFCToolBarImages* __stdcall GetDisabledMenuImages();
返回值
指向已禁用菜单图像集合的指针。
备注
使用 CMFCToolBarEditBoxButton
类方法加载已禁用的图像。
CMFCToolBar::GetDroppedDownMenu
检索指向当前显示子菜单的菜单按钮对象的指针。
CMFCToolBarMenuButton* GetDroppedDownMenu(int* pIndex = NULL) const;
参数
pIndex
[out] 接收工具栏按钮集合中按钮的索引。
返回值
指向显示其子菜单的菜单按钮对象的指针,如果没有菜单显示其子菜单,则为 NULL
。
备注
如果此方法返回非 null 值且 pIndex
不是 NULL
,则 pIndex
所指向的值将设置为工具栏按钮集合中的菜单按钮的索引。
CMFCToolBar::GetGrayDisabledButtons
指定已禁用按钮的图像是常规按钮图像的变暗版本,还是从已禁用按钮图像的集合中获取的。
BOOL GetGrayDisabledButtons() const;
返回值
如果使已禁用按钮的图像变暗,则为 TRUE
;如果从已禁用图像集合中获取图像,则为 FALSE
。
注解
使用 CMFCToolBar::SetGrayDisabledButtons
在变暗的图像与已禁用图像集合中的图像之间进行切换。
CMFCToolBar::GetHighlightedButton
返回指向当前突出显示的工具栏按钮的指针。
CMFCToolBarButton* GetHighlightedButton() const;
返回值
指向工具栏按钮对象的指针;如果未突出显示任何按钮,则为 NULL
。
注解
如果工具栏按钮具有键盘焦点,则会突出显示该按钮。 如果在此应用程序中热跟踪工具栏按钮(有关详细信息,请参阅 CMFCToolBar::GetHotBorder
和 CMFCToolBar::SetHotBorder
),并且在没有工具栏按钮或菜单项具有键盘焦点时鼠标指向它,则也会突出显示该按钮。
CMFCToolBar::GetHotBorder
确定是否热跟踪工具栏按钮。 如果热跟踪按钮,则在鼠标移动到其上方时会突出显示该按钮。
BOOL GetHotBorder() const;
返回值
如果热跟踪工具栏按钮,则为 TRUE
;否则为 FALSE
。
注解
默认情况下,将热跟踪工具栏按钮。
CMFCToolBar::GetHotTextColor
返回突出显示的工具栏按钮的文本颜色。
static COLORREF GetHotTextColor();
返回值
表示当前突出显示的文本颜色的 COLORREF
值。
注解
调用 CMFCToolBar::SetHotTextColor
以设置突出显示的工具栏按钮的新文本颜色。
CMFCToolBar::GetHwndLastFocus
返回在工具栏之前具有输入焦点的窗口的句柄。
HWND GetHwndLastFocus() const;
返回值
不是派生自 CMFCBaseToolBar
类的窗口的句柄,该类以前具有输入焦点;如果没有此类窗口,则为 NULL
。
备注
当 CMFCToolBar
控件接收输入焦点时,它会将句柄存储到丢失焦点的窗口,以便以后可以还原它。
CMFCToolBar::GetIgnoreSetText
指定是否忽略对设置按钮标签的调用。
BOOL GetIgnoreSetText() const;
返回值
如果忽略对设置按钮标签的调用,则为 TRUE
;否则为 FALSE
。
注解
CMFCToolBar::GetImages
返回指向应用程序中默认按钮图像集合的指针。
static CMFCToolBarImages* GetImages();
返回值
指向 CMFCToolBarImages
类对象的指针,该对象包含应用程序中所有工具栏的默认图像集合。
备注
此共享方法提供对应用程序的所有默认工具栏图像集合的访问权限。 调用 CMFCToolBar::LoadBitmap
方法以将图像添加到集合。
CMFCToolBar::GetImageSize
返回工具栏按钮图像的当前大小。
CSize GetImageSize() const;
返回值
CSize
类对象,该对象表示工具栏按钮图像的当前大小。
CMFCToolBar::GetImagesOffset
返回索引偏移,它用于在工具栏按钮图像的全局列表中查找此工具栏的工具栏按钮图像。
int GetImagesOffset() const;
返回值
工具栏图像的索引偏移。
注解
所有工具栏默认图像都存储在全局 CMFCToolBarImages
类列表中。 工具栏中每个按钮的图像将连续存储在该列表中。 若要计算图像的索引,请将工具栏中按钮的索引添加到该工具栏按钮的图像列表开头的偏移。
调用 CMFCToolBar::ButtonToIndex
,以在给定指向工具栏按钮的指针的情况下获取该按钮的索引。
调用 CMFCToolBar::GetImages
以获取指向工具栏图像集合的指针。
CMFCToolBar::GetInvalidateItemRect
检索必须在给定索引处为按钮重新绘制的工作区的区域。
virtual void GetInvalidateItemRect(
int nIndex,
LPRECT lpRect) const;
参数
nIndex
[in] 要为其检索工作区的按钮的索引。
lpRect
[out] 指向接收工作区区域的 RECT
对象的指针。
备注
lpRect
参数不能为 NULL
。 如果提供的索引处不存在任何按钮,则 lpRect
接收初始化为零的 RECT
对象。
CMFCToolBar::GetItemID
返回指定索引处工具栏按钮的命令 ID。
UINT GetItemID(int nIndex) const;
参数
nIndex
[in] 指定工具栏按钮的索引。
返回值
工具栏按钮的命令 ID;如果具有指定索引的按钮不存在,则为零。
CMFCToolBar::GetItemRect
返回指定索引处按钮的边界矩形。
virtual void GetItemRect(
int nIndex,
LPRECT lpRect) const;
参数
nIndex
[in] 指定工具栏按钮的索引。
lpRect
[out] 指向接收图像边界矩形坐标的 CRect
对象的指针。
备注
如果指定索引处的按钮不存在,则 CRect
所指向的 lpRect
对象设置为 0。
示例
下面的示例演示如何使用 CMFCToolBar
类的 GetItemRect
方法。 此代码片段是 IE 演示示例的一部分。
CMFCToolBar m_wndToolBar;
CRect rectToolBar;
m_wndToolBar.GetItemRect(0, &rectToolBar);
CMFCToolBar::GetLargeColdImages
返回指向应用程序中大型冷工具栏按钮图像集合的指针。
static CMFCToolBarImages* GetLargeColdImages();
返回值
指向大型冷图像集合的指针。
注解
冷图像是用户不与工具栏按钮交互时使用的图像。 调用 CMFCToolBar::LoadBitmapEx
以加载大型冷图像。
CMFCToolBar::GetLargeDisabledImages
返回指向应用程序中大型已禁用工具栏按钮图像的集合的指针。
static CMFCToolBarImages* GetLargeDisabledImages();
返回值
指向大型已禁用工具栏按钮图像的集合的指针。
备注
大型图像是常规工具栏按钮图像的大型版本。 调用 CMFCToolBar::LoadBitmapEx
或 CMFCToolBar::LoadBitmap
以加载大型图像。
CMFCToolBar::GetLargeImages
返回指向应用程序中大型工具栏按钮图像的集合的指针。
static CMFCToolBarImages* GetLargeImages();
返回值
指向大型工具栏按钮图像的集合的指针。
备注
大型图像是常规工具栏按钮图像的大型版本。 调用 CMFCToolBar::LoadBitmapEx
以加载大型图像。
CMFCToolBar::GetLockedColdImages
返回指向工具栏中锁定的冷图像集合的指针。
CMFCToolBarImages* GetLockedColdImages();
返回值
指向锁定的冷图像集合的指针,如果工具栏未锁定,则为 NULL
。
备注
锁定的图像是框架在用户无法自定义工具栏时使用的常规工具栏按钮图像的版本。 冷图像是用户不与工具栏按钮交互时使用的图像。
如果工具栏未锁定,此方法将返回 NULL
。 如果工具栏未锁定,此方法还会在调试生成中生成断言失败。 有关锁定的工具栏的详细信息,请参阅 CMFCToolBar::IsLocked
。
调用 CMFCToolBar::LoadBitmapEx
方法以加载锁定的冷图像。
CMFCToolBar::GetLockedDisabledImages
返回指向工具栏中锁定的已禁用图像集合的指针。
CMFCToolBarImages* GetLockedDisabledImages();
返回值
指向锁定的已禁用图像集合的指针,如果工具栏未锁定,则为 NULL
。
备注
锁定的图像是框架在用户无法自定义工具栏时使用的常规工具栏按钮图像的版本。 禁用的图像是框架在按钮具有 TBBS_DISABLED
样式时使用的图像。
如果工具栏未锁定,此方法将返回 NULL
。 如果工具栏未锁定,此方法还会在调试生成中生成断言失败。 有关锁定的工具栏的详细信息,请参阅 CMFCToolBar::IsLocked
。
调用 CMFCToolBar::LoadBitmapEx
方法以加载锁定的已禁用图像。
CMFCToolBar::GetLockedImages
返回指向工具栏中锁定的按钮图像集合的指针。
CMFCToolBarImages* GetLockedImages();
返回值
指向锁定的工具栏按钮图像集合的指针,如果工具栏未锁定,则为 NULL
。
备注
锁定的图像是框架在用户无法自定义工具栏时使用的常规工具栏按钮图像的版本。
如果工具栏未锁定,此方法将返回 NULL
。 如果工具栏未锁定,此方法还会在调试生成中生成断言失败。 有关锁定的工具栏的详细信息,请参阅 CMFCToolBar::IsLocked
。
CMFCToolBar::GetLockedImageSize
返回锁定的工具栏图像的默认大小。
CSize GetLockedImageSize() const;
返回值
指定锁定的工具栏图像的大小的 CSize
结构,如果工具栏未锁定,则为空的 CSize
结构。
注解
锁定的图像是框架在用户无法自定义工具栏时使用的常规工具栏按钮图像的版本。
如果工具栏未锁定,此方法将返回宽度为零且高度为零的 CSize
结构。 如果工具栏未锁定,此方法还会在调试生成中生成断言失败。 有关锁定的工具栏的详细信息,请参阅 CMFCToolBar::IsLocked
。
调用 CMFCToolBar::SetLockedSizes
方法以指定锁定的图像大小。
CMFCToolBar::GetLockedMenuImages
返回指向工具栏中锁定的工具栏菜单图像的集合的指针。
CMFCToolBarImages* GetLockedMenuImages();
返回值
指向锁定的工具栏菜单图像集合的指针,如果工具栏未锁定,则为 NULL
。
备注
锁定的图像是常规工具栏菜单图像的版本,框架在用户无法自定义工具栏时使用它们。
如果工具栏未锁定,此方法将返回 NULL
。 如果工具栏未锁定,此方法还会在调试生成中生成断言失败。 有关锁定的工具栏的详细信息,请参阅 CMFCToolBar::IsLocked
。
调用 CMFCToolBar::LoadBitmapEx
方法以加载锁定的菜单图像。
CMFCToolBar::GetMenuButtonSize
返回应用程序中的菜单按钮的大小。
static CSize GetMenuButtonSize();
返回值
表示菜单按钮的大小(以像素为单位)的 CSize
对象。
备注
工具栏上的菜单按钮的大小作为全局变量进行维护,可以通过此静态方法进行检索。
调用 CMFCToolBar::SetMenuSizes
以设置此全局变量。
CMFCToolBar::GetMenuImages
返回指向应用程序中按钮图像的集合的指针。
static CMFCToolBarImages* GetMenuImages();
返回值
指向菜单图像集合的指针。
备注
调用 CMFCToolBar::LoadBitmapEx
方法以加载菜单图像。
调用 CMFCToolBar::SetMenuSizes
方法以设置按钮及其图像的大小。
CMFCToolBar::GetMenuImageSize
返回应用程序中的菜单按钮图像的大小。
static CSize GetMenuImageSize();
返回值
表示菜单图像的大小的 CSize
对象。
注解
此方法返回工具栏菜单按钮上作为全局变量维护的图像大小。 调用 CMFCToolBar::SetMenuSizes
以设置此全局变量。
CMFCToolBar::GetOrigButtons
检索工具栏的非自定义按钮的集合。
const CObList& GetOrigButtons() const;
返回值
对工具栏中非自定义按钮列表的引用。
备注
框架会在用户自定义工具栏按钮之前创建它们的副本。 CMFCToolBar::SetButtons
方法将所提供的数组中每个按钮的副本添加到原始按钮列表中。 CMFCToolBar::RestoreOriginalState
方法通过从资源文件加载工具栏来还原工具栏的原始状态。
若要设置工具栏的原始按钮列表,请调用 CMFCToolBar::SetOrigButtons
方法。
CMFCToolBar::GetOrigResetButtons
检索工具栏的非自定义重置按钮的集合。
const CObList& GetOrigResetButtons() const;
返回值
对工具栏的非自定义重置按钮列表的引用。
注解
当用户在自定义模式下选择“重置”按钮时,框架使用此方法还原从工具栏中删除的按钮。
CMFCToolBar::SetButtons
方法在调用 CMFCToolBar::OnReset
方法后,将每个工具栏按钮的副本添加到原始重置按钮的列表。 可以重写 CMFCToolBar::OnReset
方法以在用户按下“重置”按钮后自定义按钮的外观。
CMFCToolBar::GetResourceID
检索工具栏的资源 ID。
UINT GetResourceID() const;
返回值
工具栏的资源 ID。
备注
调用 CMFCToolBar::LoadToolBarEx
方法以设置工具栏的资源 ID。
CMFCToolBar::GetRouteCommandsViaFrame
确定哪个对象(父框架或所有者)将命令发送到工具栏。
BOOL GetRouteCommandsViaFrame();
返回值
如果父框架将命令发送到工具栏,则为非零;如果所有者将命令发送到工具栏,则为 0。
备注
默认情况下,父框架将命令发送到工具栏。 调用 CMFCToolBar::SetRouteCommandsViaFrame
以更改这一行为。
如果此方法返回非零值,则可以使用 CMFCToolBar::GetCommandTarget
方法检索指向父框架对象的指针。 有关使用此方法的示例,请参阅 VisualStudioDemo 示例。
CMFCToolBar::GetRowHeight
返回工具栏按钮的高度。
virtual int GetRowHeight() const;
返回值
工具栏按钮的高度(以像素为单位)。
备注
框架调用此方法以计算工具栏布局。 在派生类中重写此方法,为工具栏指定不同的高度。
CMFCToolBar::GetShowTooltips
指定是否为工具栏按钮显示工具提示。
static BOOL GetShowTooltips();
返回值
如果显示工具栏按钮的工具提示,则为 TRUE
;否则为 FALSE
。
注解
默认情况下会显示工具提示。 可以通过调用 CMFCToolBar::SetShowTooltips
来更改此静态标志。
CMFCToolBar::GetSiblingToolBar
检索工具栏的同级。
CMFCToolBar* GetSiblingToolBar();
返回值
指向同级工具栏的指针。
备注
有关如何启用“在一行上显示按钮”和“分两行显示按钮”按钮的详细信息,请参阅 CMFCToolBar::SetSiblingToolBar
。
CMFCToolBar::GetUserImages
返回指向应用程序中用户定义的工具栏按钮图像的集合的指针。
static CMFCToolBarImages* GetUserImages();
返回值
指向应用程序中所有工具栏的用户定义的工具栏按钮图像集合的指针。
备注
调用 CMFCToolBar::SetUserImages
方法以设置应用程序中用户定义的图像的集合。
CMFCToolBar::HitTest
返回位于指定位置的工具栏按钮的索引。
virtual int HitTest(CPoint point);
参数
point
[in] 要测试的点(以工作区坐标为单位)。
返回值
位于指定位置的按钮的索引,如果没有此类按钮或按钮是分隔符,则为 -1。
CMFCToolBar::InsertButton
向工具栏中插入按钮。
virtual int InsertButton(
const CMFCToolBarButton& button,
INT_PTR iInsertAt=-1);
virtual int InsertButton(
CMFCToolBarButton* pButton,
int iInsertAt=-1);
参数
button
[in] 指定要插入的按钮。
iInsertAt
[in] 指定要插入按钮的从零开始的位置。
返回值
插入按钮的位置;如果发生错误,则为 -1。
注解
如果 iInsertAt
为 -1,此方法会将该按钮添加到工具栏按钮列表的末尾。
调用 CMFCToolBar::InsertSeparator
方法以将分隔符插入工具栏中。
CMFCToolBar::InsertSeparator
向工具栏中插入分隔符。
virtual int InsertSeparator(INT_PTR iInsertAt=-1);
参数
iInsertAt
[in] 指定要插入分隔符的从零开始的位置。 此参数必须大于 0。
返回值
插入分隔符的位置;如果发生错误,则为 -1。
注解
调用此方法以在两个现有按钮之间插入分隔符。 如果 iInsertAt
为 -1,此方法会将该分隔符添加到工具栏按钮列表的末尾。
不能使用此方法将分隔符添加到空工具栏。
调用 CMFCToolBar::InsertButton
方法以将按钮插入工具栏中。
CMFCToolBar::InvalidateButton
使提供的索引处存在的工具栏按钮的工作区失效。
CMFCToolBarButton* InvalidateButton(int nIndex);
参数
nIndex
[in] 工具栏中按钮的从零开始的索引。
返回值
指向提供的索引处存在的 CMFCToolBarButton
对象的指针,如果不存在此类对象,则为 NULL
。
备注
框架在更新与工具栏按钮关联的工作区时调用此方法。 它使用在提供的索引处存在的 CMFCToolBarButton
对象的工作区矩形调用 CWnd::InvalidateRect
方法。
CMFCToolBar::IsAddRemoveQuickCustomize
使用“自定义”菜单选项确定用户是否可以添加或删除工具栏按钮。
BOOL IsAddRemoveQuickCustomize();
返回值
如果用户可以使用“自定义”菜单选项修改工具栏,则为 TRUE
;否则为 FALSE
。
备注
CMFCToolBar::IsAltCustomizeMode
指定快速自定义是否将用于拖动按钮。 启用快速自定义后,用户可以按住 Alt 键并将按钮拖动到新位置。
static BOOL __stdcall IsAltCustomizeMode();
返回值
如果快速自定义将用于拖动按钮,则为 TRUE
;否则为 FALSE
。
备注
CMFCToolBar::IsAutoGrayInactiveImages
指定是否启用非活动(非突出显示)按钮图像的自动生成。
static BOOL IsAutoGrayInactiveImages();
返回值
如果启用了自动使非活动图像变暗的选项,则为 TRUE
;否则为 FALSE
。
备注
可以通过调用 CMFCToolBar::AutoGrayInactiveImages
来启用或禁用非活动图像的自动变暗。
CMFCToolBar::IsBasicCommand
确定命令是否位于基本命令列表中。
static BOOL IsBasicCommand(UINT uiCmd);
参数
uiCmd
[in] 指定要检查的命令。
返回值
如果指定的命令属于基本命令的列表,则为 TRUE
;否则为 FALSE
。
备注
此静态方法确定由 uiCmd
指定的命令是否属于基本命令的全局列表。 可以通过调用 CMFCToolBar::AddBasicCommand
或 CMFCToolBar::SetBasicCommands
来更改基本命令的列表。
CMFCToolBar::IsButtonExtraSizeAvailable
确定工具栏是否可以显示具有扩展边框的按钮。
virtual BOOL IsButtonExtraSizeAvailable() const;
返回值
如果工具栏可以显示具有额外边框大小的按钮,则为 TRUE
;否则为 FALSE
。
注解
如果工具栏对象可以显示具有扩展边框的按钮,则返回 TRUE
。 工具栏按钮在处理 CMFCToolBarButton::OnChangeParentWnd
通知并相应地设置其内部额外边框大小标志时调用此方法。 稍后可以通过调用 CMFCToolBarButton::IsExtraSize
来检索此内部标志。
在派生自 CMFCToolBar
的的类中重写此方法,如果工具栏可以显示具有额外边框大小的工具栏按钮,则返回 TRUE
,否则返回 FALSE
。 默认实现返回 TRUE
。
CMFCToolBar::IsButtonHighlighted
确定是否突出显示指定的按钮。
BOOL IsButtonHighlighted(int iButton) const;
参数
iButton
[in] 指定工具栏按钮的索引。
返回值
[in] 如果突出显示指定的按钮,则为 TRUE
;否则为 FALSE
。
备注
CMFCToolBar::IsCommandPermitted
确定是否允许命令。
static BOOL IsCommandPermitted(UINT uiCmd);
参数
uiCmd
[in] 指定要检查的命令。
返回值
如果允许指定的命令,则为 TRUE
;否则为 FALSE
。
注解
此静态方法确定由 uiCmd
指定的命令是否属于不允许的命令的全局列表。
可以通过调用 CMFCToolBar::SetNonPermittedCommands
来更改不允许的命令的列表。
CMFCToolBar::IsCommandRarelyUsed
确定是否很少使用命令。
static BOOL IsCommandRarelyUsed(UINT uiCmd);
参数
uiCmd
[in] 指定要检查的命令。
返回值
如果很少使用指定的命令,则为 TRUE
;否则为 FALSE
。
备注
当出现以下一个或多个情况时,IsCommandRarelyUsed
方法将返回 FALSE
:
指定的命令属于基本命令的列表
指定的命令是标准命令之一
框架处于自定义模式
基本命令的列表为空
超过 20% 的命令调用是对指定命令的调用。
CMFCToolBar::IsCustomizeMode
指定工具栏框架是否处于自定义模式。
static BOOL IsCustomizeMode();
返回值
如果框架处于自定义模式,则为 TRUE
;否则为 FALSE
。
备注
可以通过调用 CMFCToolBar::SetCustomizeMode
来切换自定义模式。
当用户调用“自定义”对话框(CMFCToolBarsCustomizeDialog
类)时,框架将更改模式。
CMFCToolBar::IsDragButton
确定是否拖动工具栏按钮。
BOOL IsDragButton(const CMFCToolBarButton* pButton) const;
参数
pButton
[in] 指向工具栏按钮的指针。
返回值
如果正在拖动指定的按钮,则为 TRUE
;否则为 FALSE
。
备注
CMFCToolBar::IsExistCustomizeButton
确定工具栏是否包含“自定义”按钮。
BOOL IsExistCustomizeButton();
返回值
如果工具栏包含“自定义”按钮,则为 TRUE
;否则为 FALSE
。
备注
如果此方法返回 TRUE
,则 CMFCToolBar::GetCustomizeButton
方法将返回指向工具栏末尾显示的“自定义”按钮的指针。
使用 CMFCToolBar::EnableCustomizeButton
方法将“自定义”按钮添加到工具栏。
CMFCToolBar::IsFloating
确定工具栏是否浮动。
virtual BOOL IsFloating() const;
返回值
如果工具栏浮动,则为 TRUE
;否则为 FALSE
。
CMFCToolBar::IsLargeIcons
指定应用程序中的工具栏当前是否显示大图标。
static BOOL IsLargeIcons();
返回值
如果应用程序使用的是大图标,则为 TRUE
;否则为 FALSE
。
注解
调用 CMFCToolBar::SetLargeIcons
以在大图标和常规图标之间切换。
当用户在“自定义”对话框的“选项”页上切换“大图标”复选框时,框架会自动更改模式。
CMFCToolBar::IsLastCommandFromButton
确定是否从指定的工具栏按钮发送了最近执行的命令。
static BOOL IsLastCommandFromButton(CMFCToolBarButton* pButton);
参数
pButton
[in] 指向按钮的指针。
返回值
如果最后一个命令是从 pButton
指定按钮发送的,则为 TRUE
;否则为 FALSE
。
备注
此方法通过调用 CWnd::GetCurrentMessage
来获取指向 MSG
结构的指针。 然后,它将按钮的 HWND
与 MSG::lParam
和 MSG::hwnd
成员进行比较,以确定该按钮是否为命令的源。
CMFCToolBar::IsLocked
确定工具栏是否锁定。
BOOL IsLocked() const;
返回值
如果工具栏被锁定,则为 TRUE
;否则为 FALSE
。
注解
当用户无法执行自定义任务(如重新定位工具栏按钮)时,此方法返回 TRUE
。
锁定的工具栏使用单独的图像列表。 有关这些图像列表的详细信息,请参阅 CMFCToolBar::LoadBitmapEx
。
CMFCToolBar::IsOneRowWithSibling
确定工具栏及其同级工具栏是否定位在同一行上。
BOOL IsOneRowWithSibling();
返回值
如果工具栏及其同级定位在同一行上,则为 TRUE
;否则为 FALSE
。
备注
CMFCCustomizeButton::CreatePopupMenu
方法调用此方法以确定如何显示“自定义”弹出菜单。 如果此方法返回 TRUE
,则框架显示“在一行上显示按钮”按钮。 否则,框架显示“分两行显示按钮”按钮。
通常不需要使用此方法。 若要启用“在一行上显示按钮”或“分两行显示按钮”按钮,请调用 CMFCToolBar::SetSiblingToolBar
。
CMFCToolBar::IsResourceChanged
virtual BOOL IsResourceChanged() const;
返回值
注解
CMFCToolBar::IsSibling
BOOL IsSibling();
返回值
注解
CMFCToolBar::IsUserDefined
指定工具栏是否是用户定义的。
BOOL IsUserDefined() const;
返回值
如果用户创建了工具栏,则为 TRUE
;否则为 FALSE
。
CMFCToolBar::LoadBitmap
从应用程序资源加载工具栏图像。
virtual BOOL LoadBitmap(
UINT uiResID,
UINT uiColdResID=0,
UINT uiMenuResID=0,
BOOL bLocked=FALSE,
UINT uiDisabledResID=0,
UINT uiMenuDisabledResID=0);
参数
uiResID
[in] 用于引用热工具栏图像的位图的资源 ID。
uiColdResID
[in] 用于引用冷工具栏图像的位图的资源 ID。
uiMenuResID
[in] 用于引用常规菜单图像的位图的资源 ID。
bLocked
[in] 如果锁定工具栏,则为 TRUE
;否则为 FALSE
。
uiDisabledResID
[in] 用于引用禁用工具栏图像的位图的资源 ID。
uiMenuDisabledResID
[in] 用于引用禁用菜单图像的位图的资源 ID。
返回值
如果该方法成功,则为非零;否则为零。
备注
CMFCToolBar::LoadToolBarEx
方法调用此方法以加载与工具栏关联的图像。 重写此方法以执行图像资源的自定义加载。
调用 LoadBitmapEx
方法以在创建工具栏后加载其他图像。
CMFCToolBar::LoadBitmapEx
virtual BOOL LoadBitmapEx(
CMFCToolBarInfo& params,
BOOL bLocked = FALSE);
参数
[in] params
[in] bLocked
\
返回值
备注
CMFCToolBar::LoadLargeIconsState
static BOOL __stdcall LoadLargeIconsState(LPCTSTR lpszProfileName = NULL);
参数
[in] lpszProfileName
\
返回值
注解
CMFCToolBar::LoadParameters
从 Windows 注册表加载全局工具栏选项。
static BOOL LoadParameters(LPCTSTR lpszProfileName=NULL);
参数
lpszProfileName
[in] 指定 Windows 注册表项的相对路径。
返回值
如果该方法成功,则为非零;否则为零。
备注
此方法加载全局参数,例如菜单动画类型、菜单阴影样式以及是否显示 Windows 注册表中的大图标。
CWinAppEx::LoadState
方法在应用程序的初始化过程中调用此方法。
CMFCToolBar::LoadState
从 Windows 注册表加载工具栏状态信息。
virtual BOOL LoadState(
LPCTSTR lpszProfileName=NULL,
int nIndex=-1,
UINT uiID=(UINT)-1);
参数
lpszProfileName
[in] 指定 Windows 注册表项的相对路径。
nIndex
[in] 指定工具栏的控件 ID。
uiID
[in] 指定工具栏的资源 ID。
返回值
如果该方法成功,则为非零;否则为零。
备注
框架在应用程序的初始化过程中调用此方法。 有关详细信息,请参阅 CWinAppEx::LoadState
。
CMFCToolBar::LoadToolBar
从应用程序资源加载工具栏。
virtual BOOL LoadToolBar(
UINT uiResID,
UINT uiColdResID=0,
UINT uiMenuResID=0,
BOOL bLocked=FALSE,
UINT uiDisabledResID=0,
UINT uiMenuDisabledResID=0,
UINT uiHotResID=0);
参数
uiResID
[in] 工具栏的资源 ID。
uiColdResID
[in] 用于引用冷工具栏图像的位图的资源 ID。
uiMenuResID
[in] 用于引用常规菜单图像的位图的资源 ID。
bLocked
[in] 一个布尔值,该值指定工具栏是否已锁定。 如果此参数为 TRUE
,则工具栏被锁定。 否则,工具栏未锁定。
uiDisabledResID
[in] 用于引用禁用工具栏图像的位图的资源 ID。
uiMenuDisabledResID
[in] 用于引用禁用菜单图像的位图的资源 ID。
uiHotResID
[in] 用于引用热工具栏图像的位图的资源 ID。
返回值
如果该方法成功,则为非零;否则为零。
注解
框架在初始化期间调用此方法以加载与工具栏关联的图像。
示例
以下示例演示了如何在 CMFCToolBar
类中使用 LoadToolBar
方法。 此代码片段是 IE 演示示例的一部分。
CMFCToolBar m_wndToolBar;
// The this pointer points to CMainFrame class which extends the CFrameWnd class.
if (!m_wndToolBar.CreateEx(this, TBSTYLE_TRANSPARENT) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME, uiToolbarColdID, uiMenuID,
FALSE /* Not locked */, 0, 0, uiToolbarHotID))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
CMFCToolBar::LoadToolBarEx
使用 CMFCToolBarInfo
帮助程序类从应用程序资源加载工具栏,使应用程序能够使用大型图像。
virtual BOOL LoadToolBarEx(
UINT uiToolbarResID,
CMFCToolBarInfo& params,
BOOL bLocked=FALSE);
参数
uiToolbarResID
[in] 工具栏的资源 ID。
params
[in] 对包含工具栏图像的资源 ID 的 CMFCToolBarInfo
对象的引用。
bLocked
[in] 一个布尔值,该值指定工具栏是否已锁定。 如果此参数为 TRUE
,则工具栏被锁定。 否则,工具栏未锁定。
返回值
如果该方法成功,则为非零;否则为零。
备注
调用此方法,以从应用程序资源加载工具栏图像。
CMFCToolBar::m_dblLargeImageRatio
指定大型图像的维度(高度或宽度)与常规图像的维度之间的比率。
AFX_IMPORT_DATA static double m_dblLargeImageRatio;
备注
默认比率为 2。 可以更改此值以使大型工具栏图像更大或更小。
如果未指定一组大型图像,则框架使用此数据成员。 例如,如果仅提供大小为 16x16 的小型图像集,并且希望大型图像的大小为 24x24,请将此数据成员设置为 1.5。
CMFCToolBar::NextMenu
virtual BOOL NextMenu();
返回值
备注
CMFCToolBar::OnBeforeRemoveButton
virtual BOOL OnBeforeRemoveButton(
CMFCToolBarButton* pButton,
DROPEFFECT dropEffect);
参数
pButton
[in] 未使用。
dropEffect
[in] 未使用。
返回值
备注
CMFCToolBar::OnChangeHot
当用户在工具栏上选择按钮时由框架调用。
virtual void OnChangeHot(int iHot);
参数
iHot
[in] 指定所选工具栏按钮的索引;如果未选择工具栏按钮,则为 -1。
备注
重写此方法以处理用户选择工具栏上的按钮的通知。
CMFCToolBar::OnChangeVisualManager
virtual void OnChangeVisualManager();
注解
CMFCToolBar::OnFillBackground
在 CBasePane::DoPaint
中由框架调用以填充工具栏背景。
virtual void OnFillBackground(CDC* pDC);
参数
pDC
[in] 指向设备上下文的指针。
注解
当已填充工具栏的背景时,CMFCToolBar::DoPaint
调用此方法。 默认实现不执行任何操作。
重写此方法以在派生类中绘制自定义背景。
CMFCToolBar::OnGlobalFontsChanged
virtual void OnGlobalFontsChanged();
备注
CMFCToolBar::OnReset
将工具栏还原到其原始状态。
virtual void OnReset();
注解
重写此方法以处理有关工具栏重置的通知。
默认实现不执行任何操作。 当工具栏具有在工具栏还原到其原始状态时必须替换的虚拟按钮时,在派生自 CMFCToolBar
的类中重写 OnReset
。
CMFCToolBar::OnSetAccData
virtual BOOL OnSetAccData(long lVal);
参数
[in] lVal
\
返回值
备注
CMFCToolBar::OnSetDefaultButtonText
将工具栏按钮的文本还原到其默认状态。
virtual BOOL OnSetDefaultButtonText(CMFCToolBarButton* pButton);
参数
pButton
[in] 指向将设置其文本的按钮。
返回值
如果已成功还原文本,则为 TRUE
;否则为 FALSE
。
备注
重写此方法,以处理工具栏按钮的文本将更改为其默认值的通知。
默认实现从应用程序资源加载按钮的文本。
CMFCToolBar::OnUserToolTip
当即将显示按钮的工具提示时由框架调用。
virtual BOOL OnUserToolTip(
CMFCToolBarButton* pButton,
CString& strTTText) const;
参数
pButton
[in] 指向要为其显示工具提示的工具栏按钮。
strTTText
[out] 对接收工具提示的文本的 CString
对象的引用。
返回值
如果使用工具提示文本填充了 strTTText
,则为 TRUE
;否则为 FALSE
。
注解
当工具栏按钮的工具提示即将显示时,框架将调用此方法。 如果 OnUserToolTip
返回 TRUE
,框架将显示一个包含由 strTTText
中的 OnUserToolTip
返回的文本的工具提示。 否则,工具提示包含按钮文本。
重写 OnUserToolTip
以自定义工具栏按钮的工具提示。 默认实现调用 CMFCToolBar::OnUserToolTip
以获取工具提示文本。
CMFCToolBar::PrevMenu
virtual BOOL PrevMenu();
返回值
备注
CMFCToolBar::ProcessCommand
将 WM_COMMAND
消息发布到拥有工具栏的窗口。
BOOL ProcessCommand(CMFCToolBarButton* pButton);
参数
pButton
[in] 指向工具栏上的按钮的指针。
返回值
此方法应始终返回 TRUE
。 MFC 在内部使用 FALSE
值。
备注
此方法通过调用 WM_COMMAND
并将指定按钮的命令 ID 作为 wParam
参数传递来将 CWnd::PostMessage
消息发布到拥有工具栏的窗口。
使用 ON_COMMAND
宏将 WM_COMMAND
消息映射到成员函数。
CMFCToolBar::RemoveAllButtons
从工具栏中删除所有按钮和分隔符。
virtual void RemoveAllButtons();
备注
框架在重新创建或销毁工具栏时调用此方法。
CMFCToolBar::RemoveButton
从工具栏中删除具有指定索引的按钮。
virtual BOOL RemoveButton(int iIndex);
参数
iIndex
[in] 指定要删除的按钮的从零开始的索引。
返回值
如果该方法成功,则为 TRUE
;如果指定的索引无效或索引引用“自定义”按钮,则为 FALSE
。
备注
此方法更新受删除按钮影响的其他工具栏属性。 例如,此方法从工具栏中删除不重要的分隔符,并重新生成快捷键表。
有关“自定义”按钮的详细信息,请参阅 CMFCToolBar::EnableCustomizeButton
。
CMFCToolBar::RemoveStateFromRegistry
从 Windows 注册表中删除工具栏的状态信息。
virtual BOOL RemoveStateFromRegistry(
LPCTSTR lpszProfileName=NULL,
int nIndex=-1,
UINT uiID=(UINT)-1);
参数
lpszProfileName
[in] 指定状态信息所在的注册表项。
nIndex
[in] 工具栏的控件 ID。
uiID
[in] 工具栏的资源 ID。 如果此参数为 -1,则此方法使用 CWnd::GetDlgCtrlID
方法检索资源 ID。
返回值
如果该方法成功,则为非零;否则为零。
注解
框架在删除用户定义的工具栏时调用此方法。
如果在 Windows 注册表中存储其他状态信息,请重写此方法。
CMFCToolBar::ReplaceButton
将工具栏按钮替换为另一个工具栏按钮。
int ReplaceButton(
UINT uiCmd,
const CMFCToolBarButton& button,
BOOL bAll=FALSE);
参数
uiCmd
[in] 要替换的按钮的命令 ID。
button
[in] 对要插入的 CMFCToolBarButton
的引用。
bAll
[in] 一个布尔值,该值指定是否替换具有 uiCmd
指定的命令 ID 的所有按钮。 如果此参数为 TRUE
,则替换具有指定命令 ID 的所有按钮。 否则,将替换第一个按钮。
返回值
已替换的按钮数。 如果工具栏上不存在具有指定命令 ID 的按钮,此方法将返回 0。
注解
如果要添加无法从资源加载的工具栏按钮,请调用此方法。 可以在设计时创建占位符按钮,并在初始化工具栏时将该按钮替换为自定义按钮。 有关使用此方法的示例,请参阅 VisualStudioDemo 示例。
示例
以下示例演示了如何在 CMFCToolBar
类中使用 ReplaceButton
方法。 此代码片段是 IE 演示示例的一部分。
CMFCToolBar m_wndToolBar;
// CMenu menuHistory
// CString str
m_wndToolBar.ReplaceButton(ID_GO_BACK,
CMFCToolBarMenuButton(ID_GO_BACK, menuHistory,
GetCmdMgr()->GetCmdImage(ID_GO_BACK), str));
CMFCToolBar::ResetAll
将所有工具栏还原到其原始状态。
static void __stdcall ResetAll();
备注
此方法在可还原的应用程序中的每个工具栏上调用 CMFCToolBar::RestoreOriginalState
方法。 它使用 CMFCToolBar::CanBeRestored
方法来确定是否可以还原工具栏。
CMFCToolBar::ResetAllImages
清除应用程序中的所有工具栏图像集合。
static void __stdcall ResetAllImages();
备注
此方法清除由 CMFCToolBar::LoadToolBar
和 CMFCToolBar::LoadBitmap
方法初始化的图像集合。
CMFCToolBar::ResetImages
virtual void ResetImages();
注解
CMFCToolBar::RestoreFocus
virtual void RestoreFocus();
注解
CMFCToolBar::RestoreOriginalState
还原工具栏的原始状态。
virtual BOOL RestoreOriginalState();
返回值
如果该方法成功,则为 TRUE
;如果该方法失败或工具栏是用户定义的,则为 FALSE
。
注解
此方法使用 CMFCToolBar::LoadToolBar
方法从资源文件加载工具栏。
当用户在“自定义”对话框的“工具栏”页面上选择“全部重置”按钮时,框架将调用该方法。
CMFCToolBar::SaveParameters
static BOOL __stdcall SaveParameters(LPCTSTR lpszProfileName = NULL);
参数
[in] lpszProfileName
\
返回值
备注
CMFCToolBar::SaveState
将工具栏的状态信息保存在 Windows 注册表中。
virtual BOOL SaveState(
LPCTSTR lpszProfileName=NULL,
int nIndex=-1,
UINT uiID=(UINT)-1);
参数
lpszProfileName
[in] 指定 Windows 注册表项的相对路径。
nIndex
[in] 工具栏的控件 ID。
uiID
[in] 工具栏的资源 ID。
返回值
如果该方法成功,则为非零;否则为零。
备注
框架在将应用程序状态保存到注册表时调用此方法。 有关详细信息,请参阅 CWinAppEx::SaveState
。
CMFCToolBar::SetBasicCommands
设置用户打开菜单时始终显示的命令列表。
static void __stdcall SetBasicCommands(CList<UINT,UINT>& lstCommands);
参数
lstCommands
[in] 对包含命令集合的 CList
对象的引用。
备注
打开菜单时,始终显示基本命令。 当用户选择查看最近使用的命令时,此方法有意义。
使用 CMFCToolBar::AddBasicCommand
方法将命令添加到基本命令的列表。 使用 CMFCToolBar::GetBasicCommands
方法检索应用程序使用的基本命令的列表。
有关使用此方法的示例,请参阅资源管理器示例。
CMFCToolBar::SetButtonInfo
设置工具栏按钮的命令 ID、样式和图像 ID。
void SetButtonInfo(
int nIndex,
UINT nID,
UINT nStyle,
int iImage);
参数
nIndex
[in] 设置其属性的按钮的从零开始的索引。
nID
[in] 按钮的命令 ID。
nStyle
[in] 按钮的样式。 有关可用工具栏按钮样式的列表,请参阅工具栏控件样式。
iImage
[in] 按钮的从零开始的图像索引(即工具栏图像集合中的索引)。
注解
调用此方法以设置工具栏按钮的属性。
在调试生成中,如果 nIndex
指定的索引无效,此方法将生成断言失败。
调用 CMFCToolBar::SetButtonStyle
方法以仅设置按钮的样式。
CMFCToolBar::SetButtons
设置工具栏的按钮。
virtual BOOL SetButtons(
const UINT* lpIDArray,
int nIDCount,
BOOL bRemapImages=TRUE);
参数
lpIDArray
[in] 指向要插入的按钮的命令 ID 的数组的指针。
nIDCount
[in] lpIDArray
中的项数。
bRemapImages
[in] 一个布尔值,该值指定是否将现有按钮图像与插入的按钮关联。 如果此参数为 TRUE
,则重新映射图像。
返回值
如果该方法成功,则为非零;否则为零。
备注
调用此方法以从工具栏中删除现有按钮,并插入新按钮的集合。
此方法将“自定义”按钮添加到工具栏,并将 AFX_WM_RESETTOOLBAR
消息发送到工具栏的父窗口。 有关“自定义”按钮的详细信息,请参阅 CMFCToolBar::EnableCustomizeButton
。
CMFCToolBar::SetButtonStyle
设置给定索引处的工具栏按钮的样式。
virtual void SetButtonStyle(
int nIndex,
UINT nStyle);
参数
nIndex
[in] 要设置其样式的工具栏按钮的从零开始的索引。
nStyle
[in] 按钮的样式。 有关可用工具栏按钮样式的列表,请参阅工具栏控件样式。
备注
如果 nStyle
为 TBBS_DISABLED
,此方法将删除 TBBS_PRESSED
样式,因为用户无法选择已禁用的按钮。
CMFCToolBar::SetButtonText
设置工具栏按钮的文本标签。
BOOL SetButtonText(
int nIndex,
LPCTSTR lpszText);
参数
nIndex
[in] 工具栏按钮的索引。
lpszText
[in] 工具栏按钮的文本标签。 必须为非空。
返回值
如果该方法成功,则为 TRUE
;否则为 FALSE
。
注解
如果提供的索引不引用有效的工具栏按钮,则此方法返回 FALSE
。
CMFCToolBar::SetCommandUsageOptions
指定很少使用的命令未显示在应用程序的菜单中的时间。
static BOOL SetCommandUsageOptions(
UINT nStartCount,
UINT nMinUsagePercentage=5);
参数
nStartCount
[in] 指定在框架仅显示基本命令和最近使用的命令之前必须执行命令的次数。
nMinUsagePercentage
[in] 必须执行命令以被视为最近使用的命令的次数百分比。
返回值
如果 nMinUsagePercentage
等于或大于 100,则为 FALSE
;否则为 TRUE
。
注解
调用此方法以自定义框架用于确定基本菜单项和最近使用的菜单项的显示方式的算法。 有关基本命令的详细信息,请参阅 CMFCToolBar::AddBasicCommand
。
此类使用 CMFCCmdUsageCount
类跟踪命令的使用计数。 有关此类的详细信息,请参阅 CMFCCmdUsageCount
类。
CMFCToolBar::SetCustomizeMode
启用或禁用应用程序中的所有工具栏的自定义模式。
static BOOL __stdcall SetCustomizeMode(BOOL bSet=TRUE);
参数
bSet
[in] 一个布尔值,该值指定是启用还是禁用自定义模式。 将此参数设置为 TRUE
以启用自定义模式或设置为 FALSE
以禁用它。
返回值
如果调用此方法会更改自定义模式,则为 TRUE
;否则为 FALSE
。
注解
此方法调整布局并重新绘制应用程序中的的每个工具栏。 调用 CMFCToolBar::IsCustomizeMode
方法以确定应用程序是否处于自定义模式。
CMFCToolBar::SetGrayDisabledButtons
指定工具栏上不可用的按钮是否变暗,或者是否使用按钮不可用的图像。
void SetGrayDisabledButtons(BOOL bGrayDisabledButtons);
参数
bGrayDisabledButtons
[in] 一个布尔值,指定如何显示不可用的按钮。 如果此参数为 TRUE
,框架会使按钮变暗。 否则,框架使用按钮不可用的图像的集合。
注解
默认情况下,不可用的按钮将变暗。
CMFCToolBar::SetHeight
设置工具栏的高度。
void SetHeight(int cyHeight);
参数
cyHeight
[in] 工具栏的高度(以像素为单位)。
备注
此方法在设置高度后重新绘制工具栏。
CMFCToolBar::SetHelpMode
static void __stdcall SetHelpMode(BOOL bOn = TRUE);
参数
[in] bOn
\
备注
CMFCToolBar::SetHot
BOOL SetHot(CMFCToolBarButton* pMenuButton);
参数
[in] pMenuButton
\
返回值
备注
CMFCToolBar::SetHotBorder
指定是否热跟踪工具栏按钮。
void SetHotBorder(BOOL bShowHotBorder);
参数
bShowHotBorder
[in] 一个布尔值,指定是否热跟踪工具栏按钮。 如果此参数为 TRUE
,工具栏会热跟踪其按钮。 否则,工具栏不会热跟踪其按钮。
注解
如果热跟踪按钮,则在鼠标移动到其上方时,框架会突出显示该按钮。 默认情况下,每个工具栏都会热跟踪其按钮。
调用 CMFCToolBar::GetHotBorder
方法以确定工具栏是否热跟踪其按钮。
CMFCToolBar::SetHotTextColor
设置热工具栏按钮的文本颜色。
static void SetHotTextColor(COLORREF clrText);
参数
clrText
[in] 指定热跟踪的工具栏按钮的文本颜色。
备注
有关热跟踪的工具栏按钮的详细信息,请参阅 CMFCToolBar::GetHotBorder
和 CMFCToolBar::SetHotBorder
。
CMFCToolBar::SetIgnoreSetText
void SetIgnoreSetText(BOOL bValue);
参数
[in] bValue
\
备注
CMFCToolBar::SetLargeIcons
指定工具栏按钮是否显示大图标。
static void SetLargeIcons(BOOL bLargeIcons=TRUE);
参数
bLargeIcons
[in] 一个布尔值,该值指定要使用的图标。 如果此参数为 TRUE
,框架将显示大图标。 否则,框架将显示常规图标。
备注
当用户在“自定义”对话框的“选项”选项卡中更改“大图标”复选框的状态时,框架将调用此方法。 此方法调整应用程序中所有工具栏的大小。
默认情况下,框架将显示常规图标。
有关“自定义”对话框的详细信息,请参阅 CMFCToolBarsCustomizeDialog
类。
CMFCToolBar::SetLockedSizes
设置工具栏上锁定的按钮和锁定的图像的大小。
void SetLockedSizes(
SIZE sizeButton,
SIZE sizeImage,
BOOL bDontScale = FALSE);
参数
sizeButton
[in] 指定锁定的工具栏按钮的大小。
sizeImage
[in] 指定锁定的工具栏图像的大小。
bDontScale
指定是否在高 DPI 模式下缩放锁定的工具栏图像。
备注
锁定的按钮的默认大小为 23x22 像素。 锁定的图像的默认大小为 16x15 像素。
调用 CMFCToolBar::GetLockedImageSize
方法以检索锁定的图像的大小。 调用 CMFCToolBar::GetButtonSize
方法以检索锁定的工具栏按钮的大小。
CMFCToolBar::SetMaskMode
void SetMaskMode(BOOL bMasked);
参数
[in] bMasked
\
注解
CMFCToolBar::SetMenuSizes
设置工具栏菜单按钮及其图像的大小。
static void __stdcall SetMenuSizes(
SIZE sizeButton,
SIZE sizeImage);
参数
sizeButton
[in] 指定工具栏按钮的大小(以像素为单位)。
sizeImage
[in] 指定工具栏图像的大小(以像素为单位)。
备注
默认情况下,菜单按钮及其图像具有未定义的大小。
调用 CMFCToolBar::GetMenuButtonSize
方法以确定菜单按钮的大小,并调用 CMFCToolBar::GetMenuImageSize
方法以确定菜单按钮图像的大小。
有关使用此方法的示例,请参阅 IEDemo 和 MSMoneyDemo 示例。
CMFCToolBar::SetNonPermittedCommands
设置用户无法执行的命令的列表。
static void SetNonPermittedCommands(CList<UINT,UINT>& lstCommands);
参数
lstCommands
[in] 对包含用户无法执行的命令的 CList
对象的引用。
备注
调用此方法以阻止用户选择某些命令。 例如,出于安全原因,你可能希望阻止用户选择某些命令。 有关使用此方法的示例,请参阅 MDITabsDemo 和 MenuSubSet 示例。
此方法清除不允许的命令的上一个列表。 默认情况下,不允许的命令的列表为空。
CMFCToolBar::SetOneRowWithSibling
将工具栏及其同级定位在同一行上。
void SetOneRowWithSibling();
注解
当用户选择“在一行上显示按钮”按钮时,框架将调用此方法。
调用 CMFCToolBar::SetSiblingToolBar
方法以启用“在一行上显示按钮”或“分两行显示按钮”按钮。 如果为此工具栏调用 CMFCToolBar::SetSiblingToolBar
,则同级工具栏将移动到此工具栏所在的行。 否则,此工具栏将移动到同级所在的行。
当用户选择“分两行显示按钮”按钮时,框架将调用 CMFCToolBar::SetTwoRowsWithSibling
方法。
CMFCToolBar::SetOrigButtons
void SetOrigButtons(const CObList& lstOrigButtons);
参数
[in] lstOrigButtons
\
备注
CMFCToolBar::SetPermament
指定用户是否可以关闭工具栏。
void SetPermament(BOOL bPermament=TRUE);
参数
bPermament
[in] 一个布尔值,该值指定用户是否可以关闭工具栏。 如果此参数为 TRUE
,则用户无法关闭工具栏。 否则,用户可以关闭工具栏。
备注
默认情况下,用户可以关闭每个工具栏。
调用 CMFCToolBar::CanBeClosed
方法以确定用户是否可以关闭工具栏。
CMFCToolBar::SetRouteCommandsViaFrame
指定是父框架还是所有者将命令发送到工具栏。
void SetRouteCommandsViaFrame(BOOL bValue);
参数
bValue
[in] 如果此参数为 TRUE
,父框架会将命令发送到工具栏。 否则,所有者会将命令发送到工具栏。
注解
默认情况下,父框架将命令发送到工具栏。 调用 CMFCToolBar::GetRouteCommandsViaFrame
方法以确定是父框架还是所有者将命令发送到工具栏。
CMFCToolBar::SetShowTooltips
指定框架是否显示工具提示。
static void SetShowTooltips(BOOL bValue);
参数
bValue
[in] 如果此参数为 TRUE
,框架将显示工具提示。 否则,框架将隐藏工具提示。
备注
默认情况下,框架将显示工具提示。
调用 CMFCToolBar::GetShowTooltips
方法以确定框架是否显示工具提示。
CMFCToolBar::SetSiblingToolBar
指定工具栏的同级。
void SetSiblingToolBar(CMFCToolBar* pBrotherToolbar);
参数
pBrotherToolbar
[in] 指向同级工具栏的指针。
注解
此方法启用在用户显示“自定义”弹出菜单时显示的“在一行上显示按钮”或“分两行显示按钮”按钮。 如果希望使用户能够指定相关工具栏是显示在同一行上还是不同行上,请调用此方法。
在启用工具栏上显示的“自定义”按钮后调用此方法。 若要启用“自定义”按钮,请调用 CMFCToolBar::EnableCustomizeButton
方法。
若要检索工具栏的同级,请调用 CMFCToolBar::GetSiblingToolBar
。
CMFCToolBar::SetSizes
指定所有工具栏上的按钮和图像的大小。
static void __stdcall SetSizes(
SIZE sizeButton,
SIZE sizeImage);
参数
sizeButton
[in] 工具栏按钮的大小(以像素为单位)。
sizeImage
[in] 工具栏按钮图像的大小(以像素为单位)。
备注
工具栏按钮的默认大小为 23x22 像素。 工具栏按钮图像的默认大小为 16x15 像素。
调用 CMFCToolBar::GetImageSize
方法以检索工具栏按钮图像的大小。 调用 CMFCToolBar::GetButtonSize
方法以检索工具栏按钮的大小。
CMFCToolBar::SetToolBarBtnText
指定工具栏上的按钮的属性。
void SetToolBarBtnText(
UINT nBtnIndex,
LPCTSTR szText=NULL,
BOOL bShowText=TRUE,
BOOL bShowImage=TRUE);
参数
nBtnIndex
[in] 工具栏按钮列表中的工具栏按钮的从零开始的索引。
szText
[in] 指定工具栏按钮的文本标签。
bShowText
[in] 如果此参数为 TRUE
,框架将显示文本标签。 否则,框架将隐藏文本标签。
bShowImage
[in] 如果此参数为 TRUE
,框架将显示工具栏按钮图像。 否则,框架将隐藏工具栏按钮图像。
备注
默认情况下,框架将显示工具栏按钮的图像,但不显示工具栏按钮的文本标签。
在调试生成中,如果 nBtnIndex
不引用有效的工具栏按钮或工具栏按钮是分隔符,此方法将生成断言失败。
CMFCToolBar::SetTwoRowsWithSibling
将工具栏及其同级定位在单独的行上。
void SetTwoRowsWithSibling();
备注
当用户选择“分两行显示按钮”按钮时,框架将调用此方法。
调用 CMFCToolBar::SetSiblingToolBar
方法以启用“在一行上显示按钮”或“分两行显示按钮”按钮。 如果为此工具栏调用 CMFCToolBar::SetSiblingToolBar
,则同级工具栏将移动到单独的行。 否则,此工具栏将移动到单独的行。
当用户选择“在一行上显示按钮”按钮时,框架将调用 CMFCToolBar::SetOneRowWithSibling
方法。
CMFCToolBar::SetUserImages
设置应用程序中用户定义的图像的集合。
static BOOL SetUserImages(CMFCToolBarImages* pUserImages);
参数
pUserImages
[in] 指向用户定义的图像的集合的指针。
返回值
如果该方法成功,则为非零;如果指定的 CMFCToolBarImages
对象无效或其图像大小不同于工具栏的默认图像大小,则为 0。
注解
框架使用用户定义的图像绘制由用户自定义的工具栏按钮。 应用程序中的所有工具栏之间共享 pUserImages
指定的图像列表。
如果指定的 CMFCToolBarImages
对象无效或其图像大小不同于工具栏的默认图像大小,此方法将在调试生成中生成断言失败。
OutlookDemo、ToolTipDemo 和 VisualStudioDemo 示例使用此方法设置用户定义的图像的全局集合。 它们加载名为 UserImages.bmp 的文件,该文件位于应用程序的工作目录中。
调用 `CMFCToolBar::GetUserImages 方法以检索应用程序中用户定义的图像的集合。
CMFCToolBar::StretchPane
垂直或水平拉伸工具栏,并在必要时重新定位按钮。
virtual CSize StretchPane(
int nLength,
BOOL bVert);
参数
nLength
[in] 要拉伸窗格的量(以像素为单位)。
bVert
[in] 如果为 TRUE
,则垂直拉伸窗格。 如果为 FALSE
,则水平拉伸窗格。
返回值
指定工具栏工作区的大小的 CSize
对象。
备注
此方法调用 CMFCToolBar::WrapToolBar
以重新定位拉伸的工具栏中的按钮。
通过调用 CMFCToolBar::CalcSize
确定返回值。
CMFCToolBar::TranslateChar
如果指定的键代码对应于有效的键盘快捷方式,则执行按钮命令。
virtual BOOL TranslateChar(UINT nChar);
参数
nChar
[in] 指定虚拟键代码。 有关标准虚拟键代码的列表,请参阅 Winuser.h
返回值
如果指定的键代码不可打印或与有效的键盘快捷方式不对应,则为 FALSE
;如果指定的键代码与下拉菜单选项对应,则为 TRUE
;否则为来自 CMFCToolBar::ProcessCommand
的返回值。
备注
当键与 Alt 键一起按下时,框架将调用此方法。
CMFCToolBar::UpdateButton
更新指定按钮的状态。
void UpdateButton(int nIndex);
参数
nIndex
[in] 指定要更新的按钮的从零开始的索引。
备注
CMFCToolBar::WrapToolBar
在给定维度中重新定位工具栏按钮。
int WrapToolBar(
int nWidth,
int nHeight = 32767,
CDC* pDC = NULL,
int nColumnWidth = -1,
int nRowHeight = -1);
参数
nWidth
[in] 工具栏的最大宽度。
nHeight
[in] 工具栏的最大高度。 如果工具栏浮动,则不使用。
pDC
[in] 指向设备上下文的指针。 如果为 NULL
,则使用工具栏的设备上下文。
nColumnWidth
[in] 按钮宽度。 如果为 -1,则使用当前宽度。
[in] m
nRowHeight
按钮高度。 如果为 -1,则使用当前高度。
返回值
工具栏上按钮的行数。
注解
此方法将按钮重新定位到工具栏中,如有必要,将按钮包装到其他行。
CMFCToolBar::m_bDontScaleImages
指定是否在高 DPI 模式下缩放工具栏图像。
设置为 TRUE
,以在图像大小与按钮大小不匹配时防止图像缩放。
AFX_IMPORT_DATA static BOOL m_bDontScaleImages;
另请参阅
层次结构图
类
CMFCMenuBar
类
CMFCPopupMenuBar
类
CMFCDropDownToolBar
类
演练:将控件置于工具栏上