?? chap7_1.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>7.1文檔/視圖概念</title>
<link rel="stylesheet" href="../../../cpcw.css"></head>
<body link="#3973DE" alink="#3973DE" background="../../bg.gif">
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="85%">
<tr bgcolor="#FFFFFF">
<td>
<div align="center"><center><table border="0"
cellpadding="0" cellspacing="0" width="615" height="20">
<tr>
<td width="377" bgcolor="#15397D" height="20"><font
size="5"></font> </td>
<td width="238" bgcolor="#000000" height="20"><p
align="right"><a href="../../index.htm"><span style="text-decoration: none"><font
color="#FFFFFF">電腦報Visual C++網絡教程</font></span></a></p>
</td>
</tr>
</table>
</center></div>
<p align="center"><font color="#FF3333" face="Times New Roman"><b>7.1</b></font><b><font color="#FF3333">文檔</font><font color="#FF3333" face="Times New Roman">/</font><font color="#FF3333">視圖概念</font></b></p>
<p><font color="#3973DE" face="Times New Roman">7.1.1</font><font
color="#3973DE">概念</font></p>
<p><font> 在文檔視結構里,文檔是一個應用程序數據基本元素的集合,它構成應用程序所使用的數據單元;另外它還提供了管理和維護數據的手段。</font></p>
<p><font> 文檔是一種數據源,數據源有很多種,最常見的是磁盤文件,但它不必是一個磁盤文件,文檔的數據源也可以來自串行口、網絡或攝像機輸入信號等。在第十二章“多線程和串行通信編程”中,我們展示了如何使用串行口作為數據輸入的文檔</font><font face="Times New Roman">/</font><font >視結構程序。文檔對象負責來自所有數據源的數據的管理。</font></p>
<p><font> 視圖是數據的用戶窗口,為用戶提供了文檔的可視的數據顯示,它把文檔的部分或全部內容在窗口中顯示出來。視圖還給用戶提供了一個與文檔中的數據交互的界面,它把用戶的輸入轉化為對文檔中數據的操作。每個文檔都會有一個或多個視圖顯示,一個文檔可以有多個不同的視圖。比如,在</font><font face="Times New Roman">Excel</font><font >電子表格中,我們可以將數據以表格方式顯示,也可以將數據以圖表方式顯示。一個視圖既可以輸出到窗口中,也可以輸出到打印機上。</font></p>
<p><font >圖</font><font
face="Times New Roman">7-1</font><font >說明了文檔及其視圖之間的關系。</font></p>
<p align="center"><font ><img src="T7_1.gif"
alt="T7_1.tif (144248 bytes)" width="351" height="283"></font></p>
<p align="center"><font >圖 </font><font face="Times New Roman">7-1 </font><font >文檔和視圖</font></p>
<p><font face="Times New Roman"> MFC</font><font >的文檔</font><font
face="Times New Roman">/</font><font >視結構機制把數據同它的顯示以及用戶對數據的操作分離開來。所有對數據的修改由文檔對象來完成。視圖調用這個對象的方法來訪問和更新數據。</font></p>
<p><font color="#3973DE" face="Times New Roman">7.1.2</font><font
color="#3973DE" >兩類文檔視結構程序</font></p>
<p><font > 有兩種類型的文檔視結構程序:單文檔界面(</font><font face="Times New Roman">SDI</font><font >)應用程序和多文檔界面(</font><font face="Times New Roman">MDI</font><font >)應用程序。</font></p>
<p><font > 在單文檔界面程序中,用戶在同一時刻只能操作一個文檔。象</font><font face="Times New Roman">Windows95</font><font >下的</font><font
face="Times New Roman">NotePad</font><font >記事本程序(如圖</font><font face="Times New Roman">7-2</font><font >所示)就是這樣的例子。在這些應用程序中,打開文檔時會自動關閉當前打開的活動文檔,若文檔修改后尚未保存,會提示是否保存所做的修改。因為一次只開一個窗口,因此不象</font><font face="Times New Roman">WORD</font><font >那樣需要一個窗口菜單。單文檔應用程序一般都提供一個</font><font face="Times New Roman">File</font><font >菜單,在該菜單下有一組命令,用于新建文檔(</font><font face="Times New Roman">New</font><font >)、打開已有文檔(</font><font face="Times New Roman">Open</font><font >)、保存或換名存盤文檔等。這類程序相對比較簡單,常見的應用程序有終端仿真程序和一些工具程序。</font></p>
<p align="center"><img src="T7_2.gif"
alt="T7_2.tif (234336 bytes)" width="476" height="391"></p>
<p align="center"><font >圖</font><font
face="Times New Roman">7-2 </font><font >單文檔程序(記事本)</font></p>
<p><font > 一個多文檔界面應用程序也能操作文檔,但它允許同時操作多個文檔。如圖</font><font face="Times New Roman">7-2</font><font >,</font><font face="Times New Roman">Microsoft
Word</font><font >就是這樣的例子。你可以打開多個文件(同時也就為每個文件打開一個窗口),可以通過切換活動窗口激活相應的文檔進行編輯。多文檔應用程序也提供一個</font><font face="Times New Roman">File</font><font >菜單,用于新建、打開、保存文檔。與單文檔應用程序不同的是,它往往還提供提供一個</font><font face="Times New Roman">Close(</font><font >關閉</font><font
face="Times New Roman">)</font><font >菜單項,用于關閉當前打開的文檔。多文檔應用程序還提供一個窗口菜單,管理所有打開的子窗口,包括對子窗口的新建、關閉、層疊、平鋪等。關閉一個窗口時,窗口內的文檔也被自動關閉。在這一章里,我們只討論單文檔界面應用程序的編制,有關多文檔技術在下一章里再做討論。</font></p>
<p align="center"><img src="T7_3.gif"
alt="T7_3.tif (258750 bytes)" width="536" height="368"></p>
<p align="center"><font ><b>圖</b></font><font face="Times New Roman"><b>7-3 </b></font><font ><b>多文檔程序(</b></font><font
face="Times New Roman"><b>Microsoft Word</b></font><font ><b>)</b></font></p>
<p><font color="#3973DE" face="Times New Roman">7.1.3</font><font
color="#3973DE" >使用文檔</font><font
color="#3973DE" face="Times New Roman">/</font><font
color="#3973DE" >視結構的意義</font></p>
<p><font > 文檔視結構的提出對于廣大程序員來說是一個福音,它大大簡化了多數應用程序的設計開發過程。文檔視結構帶來的好處主要有:</font></p>
<blockquote>
<p><font face="Times New Roman">a. </font><font >首先是將數據操作和數據顯示、用戶界面分離開。這是一種“分而治之”的思想,這種思想使得模塊劃分更加合理、模塊獨立性更強,同時也簡化了數據操作和數據顯示、用戶界面工作。文檔只負責數據管理,不涉及用戶界面;視圖只負責數據輸出與用戶界面的交互,可以不考慮應用程序的數據是如何組織的,甚至當文檔中的數據結構發生變化時也不必改動視圖的代碼。</font></p>
<p><font face="Times New Roman">b.MFC</font><font >在文檔</font><font
face="Times New Roman">/</font><font >視結構上提供了許多標準操作界面,包括新建文件、打開文件、保存文件、打印等,減輕了用戶的工作量。用戶不必再書寫這些重復的代碼,從而可以把更多的精力放到完成應用程序特定功能的代碼上:主要是從數據源中讀取數據和顯示。</font></p>
<p><font face="Times New Roman">c. </font><font >支持打印預覽和電子郵件發送功能。用戶無需編寫代碼或只需要編寫很少的代碼,就可以為應用程序提供打印預覽功能。同樣的功能如果需要自己寫的話,需要數千行的代碼。另外,</font><font face="Times New Roman">MFC</font><font >支持在文檔視結構中以電子郵件形式直接發送當前文檔的功能,當然本地要有支持</font><font face="Times New Roman">MAPI</font><font >(微軟電子郵件接口)的應用程序,如</font><font face="Times New Roman">Microsoft Exchange</font><font >。可以這樣理解:</font><font face="Times New Roman">MFC</font><font >已經把微軟開發人員的智慧和技術溶入到了你自己的應用程序中。</font></p>
</blockquote>
<p><font > 由于文檔視結構功能如此強大,因此一般我們都首先使用</font><font face="Times New Roman">AppWizard</font><font >生成基于文檔</font><font
face="Times New Roman">/</font><font >視結構的單文檔或多文檔框架程序,然后在其中添加自己的特殊代碼,完成應用程序的特定功能。但是,并非所有基于窗口的應用程序都要使用文檔</font><font face="Times New Roman">/</font><font >視結構。象</font><font face="Times New Roman">Visual
C++</font><font >隨帶的例子</font><font
face="Times New Roman">Hello</font><font >、</font><font face="Times New Roman">MDI</font><font >都沒有使用文檔</font><font face="Times New Roman">/</font><font >視結構。有兩種情況不宜采用文檔、視結構:</font></p>
<blockquote>
<p><font >(</font><font
face="Times New Roman">1</font><font >)不是面向數據的應用或數據量很少的應用程序,不宜采用文檔</font><font face="Times New Roman">/</font><font >視結構。如一些工具程序包括磁盤掃描程序、時鐘程序,還有一些過程控制程序等。</font></p>
<p><font >(</font><font
face="Times New Roman">2</font><font >)不使用標準的窗口用戶界面的程序,象一些游戲等。</font></p>
</blockquote>
<div align="center"><center><table border="0"
cellpadding="0" cellspacing="0" width="615">
<tr>
<td><a href="chap7.htm">上一頁</a></td>
<td><p align="right"><a href="chap7_2.htm">下一頁</a></p>
</td>
</tr>
</table>
</center></div><hr size="1" noshade color="#3973DE">
<p align="center"><font color="#000000" size="2">本教程由</font><a
href="http://vcdynasty.yeah.net"><font color="#000000"
size="2">Visual C++王朝(Where programmers come
together)</font></a><font color="#000000" size="2">協助制作<br>
未經許可,請勿以任何形式復制</font></p>
</td>
</tr>
</table>
</center>
</div>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -