6.3工具栏 6.3.3多个工具栏的使用 操作步骤如下: (1)???打开前面的单文档应用程序Ex_SDI。 (2)??将工作区切换到ResourceView,展开Toolbar(工具栏)资源,用鼠标单击IDR_MAINFRAME不松开,按Ctrl,将IDR_MAINFRAME拖到Toolbar资源名称上。 (3)右击工具栏资源IDR_MAINFRAME1,选择Properties命令,如图。 (4)双击IDR_TOOLBAR1,按图删除不要的工具按钮。 (5)在CMainFrame类中添加一个成员变量m_wndTestBar,变量类型为CToolBar。CToolBar类封装了工具栏的操作。 6.3工具栏 (6)??? 在CMainFrame::OnCreate函数中添加下面的工具栏创建代码: int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; int nRes = m_wndTestBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(0,0,0,0), AFX_IDW_TOOLBAR + 10); if (!nRes || !m_wndTestBar.LoadToolBar(IDR_TOOLBAR1)) { TRACE0(Failed to create toolbar\n); return -1; // fail to create } … m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); m_wndTestBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(m_wndToolBar); DockControlBar(m_wndTestBar); … return 0; } 6.3工具栏 (7)编译运行,如图。 (8) 需要调用CFrameWnd类的成员函数ShowControlBar来使程序一开始运行时隐藏工具栏IDR_TOOLBAR1。在CMainFrame::OnCreate中添加代码: int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { … ShowControlBar( m_wndTestBar, FALSE, FALSE ); // 关闭测试工 具栏 return 0; } 6.3工具栏 (9)??? 在CMainFrame::OnViewTest和CMainFrame::OnTestReturn中添加代码: void CMainFrame::OnViewTest() { … ShowControlBar( m_wndTestBar, TRUE, FALSE );// 显示测试工具栏 ShowControlBar( m_wndToolBar, FALSE, FALSE );// 关闭主工具栏 } void CMainFrame::OnTestReturn() { … ShowControlBar( m_wndTestBar, FALSE, FALSE );// 关闭测试工具栏 ShowControlBar( m_wndToolBar, TRUE, FALSE );// 显示主工具栏 } (10) 编译运行并测试,如图,左边开始运行的结果,右边是单击按钮运行的结果。 6.4状态栏 6.4.1状态栏的定义 AppWizard创建的SDI或MDI应用程序框架中,有一个静态的indicator数组,是在MainFrm.cpp文件中定义的,被MFC用作状态栏的定义。 数组中的元素是一些标识常量或是字串资源的ID号。图列出了indicators数组元素与标准状态栏窗格的关系。 Static UINT indicators[]= { ID_SEPARATOR, ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, } 图6.28 indicators数组的定义 6.4状态栏 6.4.2状态栏的常用操作 增加和减少窗
原创力文档

文档评论(0)