?? chap1_3.htm
字號:
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">
標題欄位于窗口的頂部,其中顯示的文本信息用于標注應用程序,一般是應用程序的名字,以便讓用戶了解哪個應用程序正在運行。標題欄顏色反映該窗口是否是一個活動窗口,當為活動窗口時,標題欄呈現醒目顏色。鼠標雙擊標題欄可以使窗口在正常大小和最大化狀態之間切換。在標題欄上按下鼠標器左鍵可以拖動并移動該窗口,按右鍵彈出窗口系統菜單。</span></p>
<p><span style="font-size: 9pt"><b>菜單欄</b></span></p>
<p><span style="font-size: 9pt">
菜單欄位于標題欄下方,橫跨屏幕,在它上面列出了應用程序所支持的命令,菜單欄中的項是命令的主要分類,如文件操作、編輯操作。從菜單欄中選中某一項通常會顯示一個彈出菜單,其中的項是對應于指定分類中的某個任務。通過選擇菜單中的一個項(菜單項),用戶可以向程序發出命令,以執行某一功能。如選擇“文件->打開...”菜單項會彈出一個打開文件對話框,讓用戶選擇一個文件,然后打開這個文件。<br>
一般的,以“...”結尾的菜單項文本表明選擇該項時會彈出一個對話框,讓用戶輸入信息,然后執行操作,如“文件->打開...”。若不以“...”結尾,則表明選擇該菜單項直接執行一個動作,如“編輯”菜單下的“粘貼”菜單項。若一個菜單項呈現灰色,則表明該菜單當前不可用。有時菜單項上還有加速鍵,加速鍵是一種鍵盤組合,它是菜單項的一種替代方式,可以讓用戶通過鍵盤直接發出命令;在鍵盤上按下這一鍵盤組合,就等效于選擇了相應的菜單。如“粘貼(P)
CTRL+V”,就表示粘貼操作的加速鍵是CTRL+V,按下CTRL+V就執行粘貼操作。</span></p>
<p><span style="font-size: 9pt"><b>工具條</b></span></p>
<p><span style="font-size: 9pt">
工具條一般位于菜單欄下方,在它上面有一組位圖按鈕,代表一些最常用的命令。工具條可以顯示或隱藏。讓鼠標在某個按鈕上停一會兒,在按鈕下方會出現一個黃色的小窗口,里面顯示關于該按鈕的簡短說明,叫做工具條提示(ToolTip)。用戶還可以用鼠標拖動工具條將其放在窗口的任何一側。</span></p>
<p><span style="font-size: 9pt"><b>客戶區</b></span></p>
<p><span style="font-size: 9pt">
客戶區是窗口中最大的一塊空白矩形區域,用于顯示應用程序的輸出。例如,字處理程序在客戶區中顯示文檔的當前頁面。應用程序負責客戶區的繪制工作,而且只有和該窗口相對應的應用程序才能向該用戶區輸出。</span></p>
<p><span style="font-size: 9pt"><b>垂直滾動條和水平滾動條</b></span></p>
<p><span style="font-size: 9pt">
垂直滾動條和水平滾動條分別位于客戶區的左側和底部,它們各有兩個方向相反的箭頭和一個深色的長度可變的滾動塊。可以用鼠標選中滾動條的箭頭上下卷滾(選中垂直滾動條時)或水平卷滾(選中水平滾動條時)客戶區的內容。滾動塊的位置表示客戶區中顯示的內容相對于要顯示的全部內容的位置,滾動塊的長度表示客戶區中顯示的內容大小相對于全部內容大小的比例。</span></p>
<p><span style="font-size: 9pt"><b>狀態欄</b></span></p>
<p><span style="font-size: 9pt">
狀態欄是一般位于窗口底部,用于輸出菜單的說明和其他一些提示信息(如鼠標器位置、當前時間、某種狀態等)。</span></p>
<p><span style="font-size: 9pt"><b>圖標</b></span></p>
<p><span style="font-size: 9pt">
圖標是一個用于提醒用戶的符號,它是一個小小的圖象,用于代表一個應用程序。當一個應用程序的主窗口縮至最小時,就呈現為一個圖標。</span></p>
<p><span style="font-size: 9pt"><b>光標</b></span></p>
<p><span style="font-size: 9pt"> Windows的光標是顯示屏上的一個位圖,而不是DOS下的一條下劃線。光標用于響應鼠標或其他定位設備的移動。程序可以通過改變光標的形狀來指出系統中的變化。例如,程序常顯示一個計時的光標,用于指示用戶一些漫長的操作正在進行之中。程序也可以通過改變光標讓用戶知道程序進入了一種特殊模式,例如,繪圖程序經常改變光標來反映被繪制對象的類型,是直線還是圓或其他。</span></p>
<p><span style="font-size: 9pt"><b>插入符</b></span></p>
<p><span style="font-size: 9pt"> 插入符(caret)是一個微小并閃爍的位圖,作為一個鍵盤控制的指針。控制鍵盤輸入的窗口可以創建一個插入符去通知用戶:窗口現在可以進行鍵盤輸入。在DOS環境下,一般使用“光標”作為鍵盤指針,而在Windows中,“光標”被作為鼠標指針。<br>
應用程序必須維護這個插入符。在Windows中,在一個時間只允許有一個插入符存在。因此,要使用插入符號作為鍵盤指針的應用程序必須在取得焦點時創建一個插入符號,并在失去焦點后刪除它。</span></p>
<p><span style="font-size: 9pt"><b>對話框</b></span></p>
<p><span style="font-size: 9pt">
對話框是一種特殊的窗口,它提供了一種接收用戶輸入、處理數據的標準方法。特別的,當用戶輸入了一個需要附加信息
的命令時,對話框是接收輸入的標準方法。比如,假設用戶要求系統打開一個文件,對話框就可以提供一個讓用戶從一組文件中選擇一個文件的標準方法。如前所述,在一般情況下,在選擇菜單名字后面跟著省略號(...)的菜單項通常會彈出一個對話框。圖1.5給出了查找對話框的一個例子。</span></p>
<p align="center"><span style="font-size: 9pt"><img src="T1_5.jpg"
alt="T1_5.jpg (8482 bytes)" WIDTH="389" HEIGHT="126"></span></p>
<p align="center"><span style="font-size: 9pt">圖1.5 查找對話框</span></p>
<p><span style="font-size: 9pt"><b>控件</b></span></p>
<p><span style="font-size: 9pt"> 在圖1.5中,查找對話框是一個獨立的窗口,它顯示信息并接收用戶的輸入。在對話框中,還包含了許多小的窗口,這些窗口被稱為控件。控件是應用程序用來獲得用戶特定信息的窗口,比如要打開文件的名字或自動換行的設置等。應用程序也會通過控件獲取所需的信息,以便控制程序的某種屬性,如自動換行特性的開關。<br>
控件總是與其他窗口連用,典型的是對話框,但也可以用在普通窗口之中。常見的控件有:按鈕、編輯框、列表框、組合框、靜態文本等等。</span></p>
<p><span style="font-size: 9pt"><b>消息框</b></span></p>
<p><span style="font-size: 9pt">
消息框是用于給用戶一些提示或警告的窗口。例如,消息框能夠在應用程序執行某項任務過程中出現問題時通知用戶。下圖所示的對話框警告用戶輸入了一個不合法的文件名。</span></p>
<p align="center"><span style="font-size: 9pt"><img src="T1_6.jpg"
alt="T1_6.tif (100211 bytes)" WIDTH="185" HEIGHT="115"></span></p>
<p align="center"><span style="font-size: 9pt">圖1.6</span></p>
<p><span style="font-size: 9pt"> </span></p>
<p><span style="font-size: 9pt"><b>1.3.5 資源共享</b></span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> 對于DOS程序來說,它運行時獨占系統的全部資源,包括顯示器、內存等,在程序結束時才釋放資源。而Windows是一個多任務的操作系統,各個應用程序共享系統提供的資源,常見的資源包括:設備上下文,畫刷,畫筆,字體,對話框控制,對話框,圖標,定時器,插入符號,通信端口,電話線等。<br>
Windows要求應用程序必須以一種能允許它共享Windows資源的方式進行設計,它的基本模式是這樣的:<br>
1.向Windows系統請求資源;<br>
2.使用該資源;<br>
3.釋放該資源給Windows以供別的程序使用。<br>
即使最有經驗的Windows程序員也常常會忽略第三步。如果忽略了這一步,輕則當時不出錯,但過一會兒出現程序運行出現異常情況,或干擾別的程序正常運行;重則立即死機,比如設備上下文沒有釋放時。<br>
在Windows應用程序設計中,CPU也是一種非常重要的資源,因此應用程序應當避免長時間的占用CPU資源(如一個特別長的循環);如果確實需要這樣做,也應當采取一些措施,以讓程序能夠響應用戶的輸入。主存也是一個共享資源,要防止同時運行的多個應用程序因協調不好而耗盡內存資源。<br>
應用程序一般不要直接訪問內存或其他硬件設備,如鍵盤、鼠標、計數器、屏幕或串口、并口等。Windows系統要求絕對控制這些資源,以保證向所有的應用程序提供公平的不中斷的運行。如果確實要訪問串并口,應當使用通過Windows提供的函數來安全的訪問。</span></p>
<p><span style="font-size: 9pt"><b>1.3.6 Windows應用程序組成</b></span></p>
<p><span style="font-size: 9pt"> 前面介紹了Windows應用程序的特點,現在讓我們看看編寫一個Windows程序需要做哪些工作。編寫一個典型的Windows應用程序,一般需要:<br>
1.C,CPP源程序文件:源程序文件包含了應用程序的數據、類、功能邏輯模塊(包括事件處理、用戶界面對象初始化以及一些輔助例程)的定義。<br>
2.H,HPP頭文件:頭文件包含了CPP、C源文件中所有數據、模塊、類的聲明。當一個CPP、C源文件要調用另一個CPP、C中所定義的模塊功能時,需要包含那個CPP、C文件對應的頭文件。<br>
3.資源文件:包含了應用程序所使用的全部資源定義,通常以.RC為后綴名。注意這里說的資源不同與前面提到的資源,這里的資源是應用程序所能夠使用的一類預定義工具中的一個對象,包括:字符串資源、加速鍵表、對話框、菜單、位圖、光標、工具條、圖標、版本信息和用戶自定義資源等。<br>
其中CPP、C和頭文件同DOS下的類似,需要解釋的是資源文件。在DOS程序設計過程中,所有的界面設計工作都在源程序中完成。而在Windows程序設計過程中,象菜單、對話框、位圖等可視的對象被單獨分離出來加以定義,并存放在資源源文件中,然后由資源編譯程序編譯為應用程序所能使用的對象的映象。資源編譯使應用程序可以讀取對象的二進制映象和具體數據結構,這樣可以減輕為創建復雜對象所需要得程序設計工作。<br>
程序員在資源文件中定義應用程序所需使用的資源,資源編譯程序編譯這些資源并將它們存儲于應用程序的可執行文件或動態連接庫中。在Windows應用程序中引入資源有以下一些好處:<br>
1.降低內存需求:當應用程序運行時,資源并不隨應用程序一起裝入內存,而是在應用程序實際用到這些資源時才裝入內存。在資源裝入內存時,它們擁有自己的數據段,而不駐留于應用程序數據段中;當內存緊張時,可以廢棄這些資源,使其占用的內存空間供他用,而當應用程序用到這些資源時才自動裝入,這種方式降低了應用程序的內存需求,使一次可運行更多的程序,這也是Windows內存管理的優點之一。<br>
2.便于統一管理和重復利用:將位圖、圖標、字符串等按資源文件方式組織便于統一管理和重用。比如,將所有的錯誤信息放到資源文件里,利用一個函數就可以負責錯誤提示輸出,非常方便。如果在應用程序中要多次用到一個代表公司的徽標位圖,就可以將它存放在資源文件中,每次用到時再從資源文件中裝入。這種方式比將位圖放在一個外部文件更加簡單有效。<br>
3.應用程序與界面有一定的獨立性,有利于軟件的國際化:由于資源文件獨立于應用程序設計,使得在修改資源文件時(如調整對話框大小、對話框控制位置),可以不修改源程序,從而簡化了用戶界面的設計。另外,目前所提供的資源設計工具一般都是采用“所見即所得”方式,這樣就可以更加直觀、可視的設計應用程序界面。由于資源文件的獨立性,軟件國際化工作也非常容易。比如,現在開發了一個英文版的應用程序,要想把它漢化,只需要修改資源文件,將其中的對話框、菜單、字符串資源等漢化即可,而無需直接修改源程序。<br>
但是,應用程序資源只是定義了資源的外觀和組織,而不是其功能特性。例如,編輯一個對話框資源,可以改變對話框的安排和外觀,但是卻沒有也不可能改變應用程序響應對話框控制的方式。外觀的改變可以通過編輯資源來實現,而功能的改變卻只能通過改變應用程序的源代碼,然后重新編譯來實現。<br>
Windows應用程序的生成同DOS下類似,也要經過編譯、鏈接兩個階段,只是增加了資源編譯過程,基本流程如下圖:</span></p>
<p align="center"><span style="font-size: 9pt"><img src="T1_7.gif"
alt="T1_7.tif (156126 bytes)" WIDTH="401" HEIGHT="300"></span></p>
<p align="center"><span style="font-size: 9pt">圖1.7 應用程序生成過程</span></p>
<p><span style="font-size: 9pt"> C、CPP編譯器將C源程序編譯成目標程序,然后使用連接程序將所有的目標程序(包括各種庫)連接在一起,生成可執行程序。在制作Windows應用程序時,編譯器還要為引出函數生成正確的入口和出口代碼。<br>
連接程序生成的可執行文件還不能在Windows環境下運行,必須使用資源編譯器對其進行處理。資源編譯器對可執行文件的處理是這樣的:如果該程序有資源描述文件,它就把已編譯為二進制數據的資源加入到可執行文件中;否則,僅對該可執行文件進行相容性標識。應用程序必需經過資源編譯器處理才可以在Windows環境下運行。</span></p>
<p ALIGN="right"><font size="2">[<a href="chap1_2.htm">上一頁</a>][<a
href="chap1_4.htm">下一頁</a>]</font></p>
<font size="4"><hr NOSHADE color="#3973DE" size="1">
<p align="center"><font size="2" color="#000000">本教程由<a
href="http://vcdynasty.yeah.net">Visual C++王朝(Where programmers come together)</a>協助制作,1999<br>
未經許可,請勿以任何形式復制或轉載</font></td>
</tr>
</table>
</center></div>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -