MDI(多文檔界面)應用程序是指用戶可以同時打開多個文檔,每一個文檔顯示在應用程序主窗口客戶區的獨立窗口中。如字處理程序Word就是一個典型的MDI應用程序,你可以在中同時打開和使用多個文檔,PowerPoint中你也可以同時創建和打開多個幻燈片應用程序,電子表格中也允許用戶同時對多個圖表進行編輯。MDI應用程序一般包括三類窗口:
* 框架窗口:框架窗口與應用程序的主窗口類似,有可改變大小的邊框、標題欄、系統菜單等。應用程序必須為框架窗口注冊一個窗口類。一個MDI應用程序一般只有一個框架窗口,框架窗口控制著其它各類窗口。
* 客戶窗口:客戶窗口提供對下屬MDI子窗口的管理,每一個MDI應用程序有一個客戶窗口。
* 子窗口:當用戶打開或創建一個文檔時,客戶窗口便為該文檔創建一個子窗口。每個子窗口都有可以改變大小的邊框、標題欄、系統菜單、最小最大化按鈕等。任何時刻只有一個子窗口是活動的。子窗口不能超出客戶窗口的范圍。
用一般的開發工具開發MDI應用程序相當麻煩:你必須注冊框架窗口和子窗口類、創建框架窗口和客戶窗口、寫消息循環和回調函數、創建子窗口等等,其中的每一步都不是什麼輕而易舉之事。但是在Borland C++ Builder(以下簡稱CB)中實現MDI應用程序卻相對簡單,你只需設置一下窗體的屬性FormStyle即可:把框架窗口的FormStyle設為fsMDIForm,子窗口的FormStyle設為fsMDIChild。另外CB本身也提供了MDI程序模板,選擇File|New|Projects|MDI Application,如下圖所示:
CB就會產生一個MDI應用程序框架。直接編譯運行該程序,就可以看到該程序已經具有一個MDI程序的基本特征了。
我們利用這個模板設計一個MDI應用程序。該程序是一個支持多文本格式和普通文本格式的多文檔編輯器,且同時支持工具欄快捷按鈕和打印輸出。下面我們就來談一談其具體開發過程: