网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
再谈“VC++5.0下实现多视”
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

浙江鄞县钟公庙镇长丰二村 王磊

---- 《计算机世界》前几期介绍了两种实现多视的方法。前者,作者利用MDI方法来实现,编程比较复杂;而后者作者使用CSpillterWnd类来实现多视。

---- 事实上,MFC在CDocument类中已经为我们封装了实现多视的直接方法,如果查阅一下联机文档,可以发现,CDocument中有AddView 和RemoveView两个成员函数,恰恰是这两个函数,为我们实现多视提供了便捷。

---- 下面是关于CDocument::AddView和CDocument::RemoveView的简单介绍,具体请参见联机文档:

void CDocument::AddView( CView* pView );

---- 为当前CDocument类实例加入新的视图。其中参数pView是指向新视图的指针。

Void CDocument::RemoveView ( CView* pView );

---- 从当前的CDocument类实例中移去一个视图。其中参数pView是指向要移去的视图的指针,注意必须在该视图不可见的情况下才能移去,否则会产生异常。

---- 通过这两个函数,我们可以方便的实现增加和移去视图。

---- 下面是实现的一个实例:

---- 本实例实现一文档两视图的功能。视图一由CView派生,用来显示文档中的数据,而视图二由CEditView派生,用来对文档中的数据进行编辑。用“查看”菜单中的视图一、视图二来选择视图。关于如何实现加入新的视图类和菜单请参考其他资料

---- 下面为主窗口类添加数据成员和消息处理函数:

CDemoView *m_pView1;    
//指向视图一的指针,CDemoView由应用向导生成
CMyEditView *m_pView2;
//指向视图二的指针,CMyEditView派生于CEditView
int m_nWhichView;
//指示当前为哪一个视图,并初始化为0

---- 以下是菜单选择视图二的处理函数:

void CMainFrame::OnView2()
{
   // TODO: Add your command handler code here
   if(m_pView2==NULL)
   {
     //取得视图一的指针
m_pView1 = (CDemoView *)GetActiveView();
//生成视图二实例对象
     m_pView2 = new CMyEditView;
     //取得活动文档的指针
CDemoDoc *pDoc = (CDemoDoc*)GetActiveDocument();
     //为视图二实例对象创建窗口,
       具体参数请参见联机文档的CWin::Create
m_pView2->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,
   rectDefault,this,AFX_IDW_PANE_FIRST+1,NULL);
     //下面置换视图一和视图二的ID号
//使得主窗口可以正确的使当前视图占据整个客户区
     int nId = m_pView2- >GetDlgCtrlID();
     m_pView2- >SetDlgCtrlID(AFX_IDW_PANE_FIRST);
     m_pView1- >SetDlgCtrlID(nId);
//显示视图二,隐藏视图一
     m_pView2- >ShowWindow(SW_SHOW);   
     m_pView1- >ShowWindow(SW_HIDE);   
     //添加新视图
pDoc- >AddView(m_pView2);
//设置视图二位活动视图
     SetActiveView(m_pView2);
     m_pView2- >SetWindowText(pDoc- >m_Hello);
     RecalcLayout();
   }
   else
     if(m_nWhichView==0)
     {   //同上,仅仅省略视图二的创建工作
      &

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号