陳義+余震
【摘要】 探討基于MFC應用程序框架中的MDI技術,針對現(xiàn)有的MFC框架中的MDI技術的特點和不足,提出了一種為功能需求特別定制的MDI框架技術解決方案,設計者重點介紹在visual studio 2008開發(fā)環(huán)境中構(gòu)建基于MFC定制的MDI框架應用程序,并給出了基于該解決方案的具體示例代碼。
【關鍵詞】 MFC框架 MDI編程 visual studio2008 windows
一、MFC框架的MDI結(jié)構(gòu)分析
MDI(多文檔程序)模板未必需要提供一個以上的Document類型,不同的Document類型指的是不同的CDocument衍生類別,即有不同的Document Template,基于MFC框架下的MDI程序的基本結(jié)構(gòu)如圖1所示,框架的初始化步驟也是按照圖中的順序進行,首先產(chǎn)生App全局對象,然后初始化CDocTemplate對象,接著初始化CDocument對象,接著初始化CView對象,最后生成CFrameWnd對象,此時,基于MFC的MDI多文檔程序模板就初始化完成了,在MFC框架中,這些初始化工作代碼,visual studio 2008 已經(jīng)在工程建立的時候為我生成了一個空的MDI對文檔程序代碼工程,原始的MDI框架,只留給開發(fā)人員一些固定的接口,接口的實現(xiàn)采用C++的虛函數(shù)實現(xiàn),開發(fā)人員根據(jù)自己項目需求,在自己的項目工程類中實現(xiàn)重寫接口函數(shù),完成自身的程序功能。
二、基于MFC框架的MDI結(jié)構(gòu)定制實現(xiàn)
基于MFC原生的MDI架構(gòu)中留給開發(fā)者的接口都是固定的不足,無法滿足現(xiàn)有應用系統(tǒng)的不同需求,筆者針對這個不足,提出了一個定制解決方案,將原生的MFC的MDI
多文檔程序的初始化流程重寫,在初始化模板中加入自己的定制函數(shù),讓應用程序能在MDI基礎之上擁有自身的運行效果。
2.1定制方案的設計
硬盤監(jiān)控預警系統(tǒng),在保證功能的前提下,注重運行的安全穩(wěn)定性,是一個非常復雜的監(jiān)測系統(tǒng),集成了十多種技術手段,其中有多項技術屬于公司內(nèi)部技術,下面將詳細闡述系統(tǒng)的功能及其設計方案。
2.1.1 磁盤監(jiān)測掃描
監(jiān)測掃描技術主要實現(xiàn)客戶端的硬盤監(jiān)測掃描功能,客戶端采用是后臺運行該功能,是整個項目產(chǎn)品的基本核心技術。
2.1.2 硬盤使用壽命判斷預警
磁盤壽命預警是項目產(chǎn)品的核心功能,采用數(shù)據(jù)處理算法,對客戶端掃描得到的數(shù)據(jù)進行處理,得出三種預警方式反饋給服務器端,該技術環(huán)節(jié)的核心是數(shù)據(jù)處理算法,針對預警系統(tǒng)特點,做了特定優(yōu)化,提高磁盤預警的可靠性。
2.1.3 硬盤工作狀態(tài)展現(xiàn)
硬盤監(jiān)測預警系統(tǒng)V1.0第三個核心功能,實現(xiàn)監(jiān)測對象分類管理與查看,以及對監(jiān)測對象硬盤信息的日志歷史存儲,功能界面被放在服務器端程序中,主要是對數(shù)據(jù)庫的操作,以及信息的處理、分類、顯示三個主要方面。其中對于硬盤SMART信息的獲取,解析,屬于該功能的核心技術。
2.1.4 硬盤重要數(shù)據(jù)備份預警提醒機制
該功能的設計,針對有紅色預警的客戶端,預警提醒客戶端,及時備份硬盤中重要的數(shù)據(jù),同時也通知服務器端管理,對紅色預警的客戶端,及時進行硬盤更換,起到系統(tǒng)預警的正真目的---避免重要數(shù)據(jù)丟失的目的。
2.1.5 內(nèi)網(wǎng)硬盤監(jiān)測信息分類管理
該功能屬于硬盤監(jiān)測信息解析展示的一個衍生功能,當監(jiān)測對象的規(guī)模龐大,服務器端能通過硬盤監(jiān)測信息分類管理功能來分類查看,提高了管理員工作效率,主要的分類依據(jù)是根據(jù)客戶端所屬的部門劃分的。
2.1.6 服務器對客戶端的控制調(diào)度
針對項目產(chǎn)品的特殊需求,設計必須遵循以服務器端為主導,客戶端為后臺靜默運行的機制,給出了三種監(jiān)測機制,服務器端程序,通過這三種監(jiān)測模式,對客戶端擁有完全控制權,比客戶端空閑掃描優(yōu)先級高。
2.1.7 相關升級預留接口設計
針對項目產(chǎn)品的延續(xù)性需求,產(chǎn)品的系統(tǒng)架構(gòu)預留了升級接口,包括四個功能接口,硬盤固件區(qū)監(jiān)控接口,硬盤硬實時監(jiān)控接口,硬件監(jiān)控卡接口,以及一個備用升級接口,該設計是預警系統(tǒng)架構(gòu)設計的一個重要組成部分。
2.1.8系統(tǒng)界面設計
針對產(chǎn)品用戶的需求,系統(tǒng)的客戶端使用應盡量避免用戶參與,服務器端和客戶端的程序操作應該簡潔高效,計劃對產(chǎn)品進行用戶的交互式測試,保證服務器與客戶端的交互控制更加人性化,簡潔化,達到產(chǎn)品初期的用戶需求。根據(jù)項目需求,產(chǎn)品整體架構(gòu)采用客戶端服務器模式,其中客戶端為后臺開機自動運行模式,服務器端為界面運行,數(shù)據(jù)庫采用后臺管理,該產(chǎn)品也會用訂制的一套功能按鈕圖標和產(chǎn)品Logo。
總結(jié):ASIP系統(tǒng)級設計方法的核心是系統(tǒng)級描述語言,傳統(tǒng)的設計語言并不適合用于算法級和行為級的描述,它是面向低抽象級的。作者基于設計方法發(fā)展趨勢,提出了基于ADL描述的系統(tǒng)級設計方法,與傳統(tǒng)的設計方法比較,避開了不足,提高了ASIP專用處理器的設計效率,設計者在ADL語言類型的選取上還有待進一步研究,不同類型的ADL描述語言對整個系統(tǒng)的運行效率影響有待估計。