文档类多视图

文档类多视图

更新日期: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的专栏 - 优快云博客.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) ;
}

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值