文档类多视图

文档类多视图

更新日期:2010-12-29
测试环境:VC6.0+WinXP

━━━━━━━━━━━━━━━━━━━━━━━━
/****************************************************************************
创建一个多文档多视图的程序

多文档多视图示例工程:
下载:http://cid-3ba16e78a53d2d3d.office.live.com/self.aspx/VC/MultiView.zip

更多视图类的资料下载:
http://cid-3ba16e78a53d2d3d.office.live.com/self.aspx/VC/MultiViewInfo.zip
zip里有如下文件:
1.转贴:单文档多视图.mht
2.标签切换视图.rar
3.标签切换视图 多文档 tab Automatic Tab Bar for MDI Frameworks.zip
4.单文档多视图的实现 - yangsh3002的专栏 - CSDN博客.mht
5.单文档多视图.docx


1.用VC6创建一个多文档(设定名称为Multi)
2.新建一个类CMyEditView继承于CEditView(这就是我们自己手动添加的一个新视图类)
3.在Multi.h里添加2个文档指针。(并且是public)
    CMultiDocTemplate* pDocTemplate;
    CMultiDocTemplate* pEditViewDocTemplate;
4.修改工程里的Multi.cpp。在函数BOOL CMultiApp::InitInstance()里
    1)把CMultiDocTemplate* pDocTemplate;这一句去掉(因为步骤3已经定义它了)
    2)修改代码:

    //原来的代码
    pDocTemplate = new CMultiDocTemplate(
        IDR_MULTITYPE,
        RUNTIME_CLASS(CMultiDoc),
        RUNTIME_CLASS(CChildFrame), // custom MDI child frame
        RUNTIME_CLASS(CMultiView));
    AddDocTemplate(pDocTemplate);

    //我们自己多添加的代码
    pEditViewDocTemplate = new CMultiDocTemplate(
        IDR_MULTITYPE,
        RUNTIME_CLASS(CMultiDoc),
        RUNTIME_CLASS(CChildFrame), // custom MDI child frame
        RUNTIME_CLASS(CMyEditView));
    AddDocTemplate(pEditViewDocTemplate);

5.如果你不想程序启动时就创建一个空文档,则:
    在你的XXXXAPP类的InitInstance函数内部,修改以下语句块
    CCommandLineInfo   cmdInfo;
    ParseCommandLine(cmdInfo);
    cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing;//添加语句      
    if   (!ProcessShellCommand(cmdInfo))
        return   FALSE;

6.添加2个菜单项,比如OnView1 和OnView2
void CMainFrame::OnView1()
{
    CMultiApp* pApp = (CMultiApp *)AfxGetApp();
    pApp->pEditViewDocTemplate->OpenDocumentFile(NULL) ;
}

void CMainFrame::OnView2()
{
    CMultiApp* pApp = (CMultiApp *)AfxGetApp();
    pApp->pDocTemplate->OpenDocumentFile(NULL) ;
}

****************************************************************************/
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC多文档视图的创建可以分为以下几个步骤: 1. 创建一个多文档应用程序 在Visual Studio中创建一个MFC应用程序时,选择“多文档应用程序”模板,这样就会自动生成一些基本的代码和文件结构。 2. 添加新的文档类型 在多文档应用程序中,可以有多种不同的文档类型,每种文档类型可以有自己的视图类型。例如,在一个画图程序中,可以有一个文档类型用于绘制直线,另一个文档类型用于绘制圆形。 要添加新的文档类型,可以在“资源视图”中右键单击“DocTypes”节点,选择“添加新项”,然后在“添加新文档类型向导”中按照提示操作即可。 3. 添加新的视图类型 每个文档类型可以有多个不同的视图类型,例如,在一个画图程序中,可以有一个视图用于显示直线,另一个视图用于显示圆形。 要添加新的视图类型,可以在“资源视图”中右键单击相应的文档类型节点,选择“添加新项”,然后在“添加新视图向导”中按照提示操作即可。 4. 在文档类中实现创建视图的函数 在文档类中,需要实现一个函数,用于创建该文档类型的视图。这个函数的返回值应该是CView或其派生类的指针。例如: CView* CMyDoc::CreateView(CWnd* pParentWnd) { CView* pView = new CMyView; pView->Create(NULL, NULL, WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), pParentWnd, AFX_IDW_PANE_FIRST, NULL); return pView; } 在这个函数中,先创建一个新的视图对象,然后调用其Create函数创建实际的窗口,并返回指向该视图对象的指针。 5. 在主框架窗口类中添加菜单项和工具栏按钮 为了让用户能够创建新的文档和打开已有文档,需要在主框架窗口类中添加相应的菜单项和工具栏按钮。 6. 运行程序,测试文档视图功能 完成上述步骤后,就可以运行程序,测试文档视图的功能了。可以尝试创建多个不同类型的文档,并在每个文档中创建不同类型的视图,然后在不同的视图中进行操作,观察程序的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值