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

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

   if(m_nWhichView==1)
   {
     //原理同上
     int nId = m_pView1- >GetDlgCtrlID();
     m_pView1- >SetDlgCtrlID(AFX_IDW_PANE_FIRST);
     m_pView2- >SetDlgCtrlID(nId);
     m_pView2- >ShowWindow(SW_HIDE);
     m_pView1- >ShowWindow(SW_SHOW);
     SetActiveView(m_pView1);
     RecalcLayout();
     m_nWhichView = 0;
   }

---- 然后为文档类CDemoDoc 添加成员数据 CString m_Hello,用于视图一的显示数据和视图二的编辑数据。

---- 最后分别加入视图一和视图二的处理函数。

---- 在视图一中加入OnDraw处理函数用于显示数据,如下:

void CDemoView::OnDraw(CDC* pDC)
{
   CDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
   // TODO: add draw code for native data here
RECT rect;
   GetClientRect(&rect);
pDC->SetTextColor(RGB(0,128,128));
   pDC->DrawText(pDoc- >m_Hello,pDoc- >
    m_Hello.GetLength(),&rect,DT_WORDBREAK);
}

---- 在视图二中加入用于相应数据改变的处理函数:

void CMyEditView::OnChange()
{
   // TODO: If this is a RICHEDIT control,
     the control will not
   // send this notification unless you override
    the CEditView::OnInitDialog()
   // function to send the EM_SETEVENTMASK
    message to the control
   // with the ENM_CHANGE flag
   ORed into the lParam mask.
   
   // TODO: Add your control
   notification handler code here
   //仅将数据保存到文档
   CDemoDoc *pDoc = (CDemoDoc *)GetDocument();
   GetWindowText(pDoc- >m_Hello);
   
}

---- 注意:编译前在MainFrm.cpp中加入DemoView.h 和MyEditView.h 和 DemoDoc.h三个头文件。于是大功告成,可以进行编译测试了。

---- 总结:使用MDI和CSplitter来实现多视,无非是隐含的使用AddView来实现一文档多视,而这里,笔者直接使用了AddView来实现多视。当然,朋友们可能会问,上面这个演示程序,为什么只能在各个视图中切换,而不能同时将其显示在主窗口的客户区。其实,同时显示在客户区是可能的,笔者经过多次试验,发现两个视图完全可以显示在

网学推荐

免费论文

原创论文

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