背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-11253.html    注册17xie 一起来写书 实现您的出书梦想!

运行现在的程序。打开两个子窗口MultiD1MultiD2,在其中一个窗口中MultiD1中键入“this is a test.”。然后将焦点移至另一个子窗口MultiD2,并使它遮住MultiD1的一部分。再将焦点移回MultiD1。这时窗口的显示是不正确的,如图7-9所示。

我们必须在OnDraw函数中加入一些代码,使它能对当前的文档进行正确地显示。修改OnDraw函数如下:

程序清单7-27  OnDraw函数

void CMultiDoc1View::OnDraw(CDC* pDC)

{

         CMultiDoc1Doc* pDoc = GetDocument();

         ASSERT_VALID(pDoc);

 

         // TODO: add draw code for native data here

         TEXTMETRIC tm1;

         CClientDC dc(this);

         dc.GetTextMetrics(&tm1);

         for(int p=0;p<=pDoc->m_LineCount;p++)

         dc.TextOut(0,p*tm1.tmHeight,pDoc->m_TextString[p]);

}

现在再做前面的实验,我们发现,窗口的显示已经正常了。

至此,我们的多文档功能已经被加入到程序中了。在下一节,我们将继续修改这个项目,在其中加入对多窗口的支持。

7.4  多窗口应用

在前面的程序MultiDoc1中,我们生成了一个支持多文档的编辑器。在这一节中,我们要介绍如何使用多视图窗。使用多视图窗有两种办法:

n         当用户选择Window 菜单下的New Window菜单,打开一个新的视图窗,并在其中显示出当前文档。

n         利用切分窗口,让用户在同一窗口中处理同一文档的多个视图窗。

n         我们将在下面利用第一种方法程序MultiDoc1加以改进,加入对多视图窗功能的支持。

7.4.1  程序框架实现的功能

现在我们首先运行目前的程序MultiDoc1。在视图窗中键入“it is a test”,然后选择Window 菜单下的New Window菜单时,系统会弹出一个新的视图窗,其中显示了当前的文档“it is a test”,如图7-10所示。


字数:1529    最后更新:1年以前 [08-13 16:11]果冻 修改
本页编辑者:果冻  
[前一页]:第七章  [后一页]:第七章
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号