用过WPS2000的朋友,肯定对其文件切换功能有很深的印象。当打开多个文件时,他可以使我们快速的切换到指定的文件。本文将详细地说明如何在自己的MDI程序中加入这样一个标签。 图一是本文例子程序运行画面。
图一 例子程序运行画面
开始之前,我们先对WPS2000中的文件切换标签做简单分析,这是一个Tab标签,该标签具有以下功能:
- 1、当鼠标移到Tab标签上时,对应的文字将变为蓝色;
- 2、新建或打开一个文件时,Tab标签会以文件标题为标签文本自动加入一项;
- 3、切换Tab标签时,对应的文件窗口会跟着切换;
- 4、当我们激活不同的文件窗口时,Tab标签会自动切换;
- 5、关闭一个文件窗口时,Tab标签中对应的项会自动消失。
在本文的例子中,除实现上述功能外,还作如下修改:
- 1、增加双击Tab标签时最大化、恢复子窗口功能;
- 2、修改Tab标签为按钮风格。
具体思路:
在MDI程序中加入一个包含Tab标签的对话框条,并加入类CViewManager,该类用一个指针数组存放所有打开子窗口的视指针,用一个字符串数组存放文档标题。在视类的初始化函数OnInitUpdate() 里取得视指针及文档标题,存放到CViewManager的数组中,并在Tab标签中加入一项。在视类的析构函数里从Tab标签和CViewManager的数组中删除对应的项。切换Tab标签时,取得对应子窗口的指针,并以该指针为参数调用CMDIFrameWnd::MDIActivate()激活这个子窗口。下面请看具体的实现步骤:
一、在VC6.0中,用向导创建一个MDI工程TabMDIDemo。在向导各步中均采用默认项
二、为工程加入Tab标签对话框条
1、在工作区的ResourceView中加入一个对话框模板IDD_TAB_DLG_BAR,按如下设置:
Style: Child
Border: Thin
去掉标题条和系统菜单选项;
字体:宋体,字号:10
在模板中加入一个Tab标签控件IDC_TAB,按如下设置:
