工具栏基础知识

本文描述可以添加工具栏到默认应用程序通过在应用程序向导的选项的基本 MFC 实现。 所涵盖的主题包括:

  • 工具栏应用程序向导选项

  • 工具栏代码

  • 工具栏编辑资源

  • 多个工具栏

工具栏应用程序向导选项

若要获取默认按钮的工具栏,一个具有选择标记上用户界面功能的标准页面的停靠工具栏选项。 此代码添加到应用程序中:。

  • 创建工具栏对象。

  • 管理工具栏,包括它能够停靠或浮动。

工具栏代码

工具栏为应用程序的 CMainFrame 类的数据成员声明的对象。CToolBar 换言之,工具栏对象在主框架窗口对象嵌入。 这意味着 MFC 创建工具栏,则创建框架窗口时并销毁工具栏,则销毁框架窗口时。 下面的分部类声明,多文档界面 (MDI) (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 默认工具栏执行以下任务:

  1. 调用 CToolBar 对象的函数 CToolBarCtrl创建 成员创建基础对象。

  2. 调用 LoadToolBar 工具栏资源加载信息。

  3. 调用函数启用停靠,浮动和工具提示。 有关这些调用的详细信息,请参见 停靠和浮动工具栏文章。

备注

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 设置按钮的样式和连接使用位图图像的按钮。

有关使用工具栏编辑器的详细信息,请参见 工具栏编辑器

多个工具栏

应用程序向导提供一个默认。工具栏 如果在应用程序需要多个工具栏,可以基于默认工具栏模型的向导生成的代码中的工具栏的代码。

作为命令,则若要显示工具栏,您需要:

  • 创建工具栏编辑器的新工具栏资源加载并在 OnCreateLoadToolbar 成员函数。

  • 嵌入在主框架窗口类的新对象。CToolBar

  • 调用在相应的 OnCreate 函数调用停靠或浮动工具栏,设置其样式,依此类推。

您想进一步了解什么?

请参见

概念

MFC 工具栏实现