工具栏基础知识
本文介绍可以添加默认工具栏添加到应用程序通过选择在应用程序向导的选项卡基本 MFC 实现。 所涵盖的主题包括:
应用程序向导工具栏选项
代码中的工具栏
编辑器工具栏资源
多个工具栏
应用程序向导工具栏选项
获取具有默认按钮的一个工具栏,选择标记用户界面功能的页面的标准停靠工具栏选项。 这将代码添加到您的应用程序中:
创建工具栏对象。
管理工具栏,包括它能够停靠或是浮动。
代码中的工具栏
工具栏是作为应用程序的 CMainFrame 类的数据成员声明的 CToolBar 对象。 换言之,工具栏对象在主框架窗口对象中。 这意味着 MFC 创建工具栏,在创建框架窗口时和销毁工具栏,当它销毁框架窗口时。 下面的分部类声明,多个文档界面应用程序 (MDI),显示嵌入式工具栏和嵌入式状态栏的数据成员。 它还显示 OnCreate 成员函数的重写。
class CMainFrame : public CMDIFrameWnd
{
// Implementation
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
// Generated message map functions
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()
工具栏创建在 CMainFrame::OnCreate发生。 MFC 在创建框架的窗口后调用 OnCreate ,但,它将变为可见之前。 应用程序向导生成的默认 OnCreate 工具栏执行以下任务:
调用 CToolBar 对象的 创建 成员函数创建基础 CToolBarCtrl 对象。
调用 LoadToolBar 加载工具栏资源信息。
调用函数启用停靠,浮点和工具提示。 有关这些调用的详细信息,请参见一 停靠的和浮动工具栏文章。
备注
MFC 通用示例 DOCKTOOL 包括旧的和新的 MFC 工具栏的说明。使用 COldToolbar 的工具栏在步骤 2 中需要对 LoadBitmap (而不是 LoadToolBar) 以及 SetButtons。新工具栏需要对 LoadToolBar。
停靠,浮点和工具提示调用是可选的。 ,如果您愿意,可以从 OnCreate 移除这些行。 结果是保持固定,无法打开或 redock 和无法显示工具提示的工具栏。
编辑器工具栏资源
默认工具栏使用应用程序向导的根据获取 RT_TOOLBAR 自定义资源,会在 MFC 4.0 版。 可以编辑与 工具栏编辑器的此资源。 编辑器轻松地,可以添加、删除和重新排列按钮。 它包含类似于 Visual C++ 的泛型关系图编辑按钮的一个图形编辑器。 如果编辑在 Visual C++ 早期版本中的工具栏,您将发现任务更加轻松。
若要连接工具栏按钮。命令,则赋予按钮命令 ID,例如 ID_MYCOMMAND。 指定命令 ID 在编辑器工具栏按钮的属性页。 然后创建命令的一个处理程序函数 (请参见 映射到功能的消息 有关更多信息)。
新 CToolBar 成员函数与 RT_TOOLBAR 资源一起使用。 LoadToolBar 现在取代 LoadBitmap 加载工具栏按钮图像的位图和 SetButtons 设置按钮样式和使用位图图像连接按钮。
有关使用工具栏编辑器的详细信息,请参见 工具栏编辑器。
多个工具栏
应用程序向导为您提供了默认的工具栏。 如果您的应用程序需要多个工具栏,您可以建模您的基于默认工具栏的向导生成的代码的其他工具栏的代码。
由于命令,如果要显示工具栏,您需要:
使用工具栏编辑器创建一个新的工具栏资源并加载它在 OnCreate 用 LoadToolbar 成员函数。
嵌入一个新的 CToolBar 对象在您的主框架窗口类。
让适当的函数调用。 OnCreate 停靠或是浮动工具栏,设置其样式,依此类推。