为VC对话框添加工具条

Author: 孟学桢 Date: 2000年 第4期

  对于基于对话框的应用程序,MFC AppWizard还没有对工具条的支持,但可以通过使用CToolBar类来构造生成工具条,我们下面介绍如何为对话框程序添加工具条。
  用MFC AppWizard(EXE)生成一个基于对话框的应用程序,接受其默认设置,取名为demodialog。
  给应用程序添加一个Toolbar的名称为IDR_TOOLBAR1的工具条资源,名称分别如下:
  ID_NEW ∥生成新的程序等
  ID_FILE_OPEN ∥打开文件
  ID_FILE_SAVE ∥保存文件
  ID_EXIT ∥退出程序
  然后在对话框的头文件中添加如下的成员变量:
  CToolBar m_wndToolBar;
  在resoure编辑框中编辑这些toolbar资源,设置好大小和彼此的距离,添加工具条前,需要初始化工具条,添加如下所示的代码到demodialog.cpp的OnInitDialog()函数中。
  如果要使工具条是平面浮动的,可以添加如下的代码到对话框初始化函数中。
  ……
  if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||!m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
  {
  TRACE0(″创建工具条失败\n″);
  return -1;∥不能创建,返回报-1
  }RepositionBar
  s(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);∥定位工具条
  ……
  如果要使工具条是立体静态的,添加如下的代码到对话框初始化函数中。
  ……
  if(!m_wndToolBar.Create(this)||!m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
  {
  TRACE(″创建工具条失败\n″);
  return -1;∥不能创建,返回
  }RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);∥定位工具条
  ……
  编译生成的程序,就实现了对话框的工具条,如果需要添加另外的对话框的工具条代码实现,用ClassWizard为工具条添加消息映射即可。