1、VC 中如何创建多个工具条在实际的软件开发中,我们常常需要创建多个自定义的工具条,并且要象标准的工具条那样,允许用户通过鼠标将自定义的工具条移动到框架的其它地方,还可以根据需要显示或是隐藏该工具条。通过实践,我们在 Visual C+ 6.0 中编程实现了创建自定义的工具条,从而在应用程序中可并存多个工具条。 1. 在 Visual C+ 6.0 中用 AppWizard 以默认方式创建 SDI 或 MDI 的应用程序工程,工程名称为 MyBars。 2. 在 ResourceView 中选择“Toolbar”并点击右键,通过选择 “Insert Toolbar”新建一工具条,其 ID 值设为
2、 ID_MYTOOLBAR。在该工具条上添加两个位图按钮,并双击每个位图按钮,设置其 ID 值分别为 ID_MYTOOLBAR_CIRCLE 和 ID_MYTOOLBAR_RECT。 3. 在 MainFrame.h 文件中 CMainFrame 类定义的前面定义一个映射工具条按钮图像和程序命令 ID 的数组,这是一个 UINT 类型的数组: static UINT BASED_CODE My_Buttons= / 要和工具条中位图的次序一样 ID_TOOLBAR_CIRCLE, ID_TOOLBAR_RECT; 4. 在 CMainFrame 类中添加一工具条对象指针 m_pMyToolBa
3、r: class CMainFrame : public CFrameWnd protected: CStatusBar m_wndStatusBar; CToolBar m_wndToolBar; CToolBar m_pMyToolBar; / 新添加的工具条对象指针 5.在 CMainFrame:OnCreate 函数中添加代码创建和初始化工具条,并建立所需的连接关系,代码如下: int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct) / 创建和初始化工具条对象 m_pMyToolBar=new CToolBar(); m_pMyTo
4、olBar-Create(this, WS_CHILD|WS_VISIBLE|CBRS_TOP, 0x9100); / 将按钮图象和工具条对象连接起来 m_pMyToolBar-LoadBitmap(IDR_MYTOOLBAR); / 将映射数组 My_Buttons 和工具条对象连接起来 m_pMyToolBar-SetButtons(My_Buttons, sizeof(My_Buttons)/sizeof(UINT); / 允许用户通过鼠标将工具条移动到框架的其它地方 m_pMyToolBar-EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CB
5、RS_ALIGN_ANY); DockControlBar(m_pMyToolBar); return 0; 6. 通过 View-ClassWizard 为工具条的按钮 ID 值添加消息响应处理函数,例如为 ID_TOOLBAR_CIRCLE 添加的处理函数如下所示: void CMainFrame:OnToolbarCircle() AfxMessageBox(“Circle“); / 可改为具体的有关代码 这样,我们就创建了一个新的工具条(如图 1),上面有两个按钮,点击按钮将会执行有关的操作,并且用户还可以将工具条任意拖动到框架的其它地方。 工具条建立之后,就被连接到应用程序的框架窗口上,我们一般还要允许用户根据需要显示或隐藏该工具条。下面的代码就可实现这种要求: int nShow=SW_SHOWNORMAL; / 想要隐藏则设置为 SW_HIDE m_pMyToolBar-ShowWindow(nShow); / 显示或隐藏工具条 RecalcLayout(); / 通知框架窗口, 重新计算工具条的位置 以上的程序在 Visual C+ 6.0 中调试通过。