• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

VC中如何创建多个工具条

发布: 2007-7-04 20:47 | 作者: admin | 来源:  网友评论 | 查看: 178次 | 进入软件测试论坛讨论

领测软件测试网 粟利民

  在实际的软件开发中,我们常常需要创建多个自定义的工具条,并且要象标准的工具条那样,允许用户通过鼠标将自定义的工具条移动到框架的其它地方,还可以根据需要显示或是隐藏该工具条。通过实践,我们在Visual C++ 6.0中编程实现了创建自定义的工具条,从而在应用程序中可并存多个工具条。

  1. 在Visual C++ 6.0中用AppWizard以默认方式创建SDI或MDI的应用程序工程,工程名称为MyBars。

  2. 在ResourceView中选择“Toolbar”并点击右键,通过选择 “Insert Toolbar”新建一工具条,其ID值设为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_pMyToolBar:

  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_pMyToolBar-〉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(CBRS_ALIGN_ANY);

  DockControlBar(m_pMyToolBar);

return 0; }

  6. 通过View-〉ClassWizard为工具条的按钮ID值添加消息响应处理函数,例如为ID_TOOLBAR_CIRCLE添加的处理函数如下所示:

  void CMainFrame::OnToolbarCircle() 

  { AfxMessageBox("Circle"); // 可改为具体的有关代码}

  这样,我们就创建了一个新的工具条(如图1),上面有两个按钮,点击按钮将会执行有关的操作,并且用户还可以将工具条任意拖动到框架的其它地方。

  图1

  工具条建立之后,就被连接到应用程序的框架窗口上,我们一般还要允许用户根据需要显示或隐藏该工具条。下面的代码就可实现这种要求:

  int nShow=SW_SHOWNORMAL; // 想要隐藏则设置为SW_HIDE

  m_pMyToolBar-〉ShowWindow(nShow); // 显示或隐藏工具条

  RecalcLayout(); // 通知框架窗口, 重新计算工具条的位置

  以上的程序在Visual C++ 6.0中调试通过。 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网