频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

在MDI程序中实现类似WPS2000的文件切换标签

来源: 作者: 出处:巧巧读书 2007-10-09 进入讨论组
ON_COMMAND_EX(ID_VIEW_TAB_BAR, OnBarCheck)
 ON_UPDATE_COMMAND_UI(ID_VIEW_TAB_BAR, OnUpdateControlBarMenu)  

  8、在CMainFrame::OnCreate()加入以下代码:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{  
  //向导生成代码略去
  //创建TAB条
  if (!m_wndTabBar.Create(this, IDD_TAB_DLG_BAR,
  CBRS_TOP | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE,
  ID_VIEW_TAB_BAR)) //ID_VIEW_TAB_BAR是菜单命令ID,用于显示或隐藏对话框条
  {
  TRACE0("Failed to create dialog bar m_wndDialogbar\n");
  return -1;    // fail to create
  }
  //m_wndTabBar.EnableDocking(CBRS_ALIGN_LEFT | CBRS_ALIGN_RIGHT);
  //EnableDocking(CBRS_ALIGN_ANY);
  //DockControlBar(&m_wndTabBar);
  //将m_MyTab与控件IDC_TAB绑定
  m_MyTab.SubclassDlgItem(IDC_TAB, &m_wndTabBar);
  return 0;
}  

  9、为类CMainFrame添加WM_SIZE消息映射函数,如下:

void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
  CMDIFrameWnd::OnSize(nType, cx, cy);
  // TODO: Add your message handler code here
  CRect rcClient;
  GetClientRect(&rcClient);
  int left,top,right,bottom;
  left=rcClient.left;
  top=rcClient.top;
  right=rcClient.right;
  bottom=rcClient.bottom;
  m_wndTabBar.MoveWindow(left,top+24,right-left,24,TRUE);
  CRect rcTab;
  m_wndTabBar.GetClientRect(&rcTab);
  CTabCtrl *pMyTab=(CTabCtrl *)(m_wndTabBar.GetDlgItem(IDC_TAB));
  pMyTab->MoveWindow(rcTab,TRUE);
}  

  三、手工创建类CViewManager

  新建两个文件ViewManager.h、ViewManager.cpp ,并添加到当前工程。类的源码参见本文所附例子。下面对其成员作简单说明:

  • OnActivateView();     //当一个视被激活时,该函数被调用,刷新Tab控件
  • GetWindowNum();      //返回打开的子窗口数
  • RemoveAll();        //清空数组arViews、arViewTitles
  • RemoveView();       //用于在数组及Tab控件中删除一项
  • AddView();         //用于在数组及Tab控件中加入一项
  • CViewManager();      //构造函数
  • ~CViewManager();      //析构函数,清空数组arViews、arViewTitles
  • CPtrArray arViews;     //用来存放子窗口的视指针
  • CstringArray arViewTitles; //用来存放文档标题
  • bool bClosing;       //用于表示程序是否正在关闭

  四、实现文件切换。

文章地址: http://www.qqread.com/wps/e353917.html进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章