視頻會(huì)議管理系統(tǒng)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  視頻會(huì)議管理系統(tǒng)</b></p><p><b>  摘要</b></p><p>  為了適應(yīng)全球經(jīng)濟(jì)一體化的迅速發(fā)展,各大企業(yè)紛紛在世界各地建立企業(yè)的分支機(jī)構(gòu),以擴(kuò)大企業(yè)在經(jīng)濟(jì)領(lǐng)域中的影響力。企業(yè)規(guī)模的不斷擴(kuò)大,給企業(yè)管理出現(xiàn)了新的管理要求,為了讓各地分支機(jī)構(gòu)能夠及時(shí)的對(duì)企業(yè)決策作出迅速的反應(yīng),各企業(yè)都積極采用高

2、科技技術(shù)——視頻會(huì)議,對(duì)各分支機(jī)構(gòu)進(jìn)行統(tǒng)一的通知、調(diào)整等,使各地的分支機(jī)構(gòu)能夠同一時(shí)間,同時(shí)按照企業(yè)的整體規(guī)化和按排開始行動(dòng)。</p><p>  具有關(guān)研究表明,人腦所接受的信息中55%來自于面對(duì)面的視覺效果,38%依賴于說話者的語音,而只有7%依賴于內(nèi)容。隨著計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)發(fā)展和電信基礎(chǔ)運(yùn)營(yíng)成本的降低,新一代視頻會(huì)議系統(tǒng)在各企業(yè)中得到廣泛的應(yīng)用。2004年和2005年,中國(guó)視頻會(huì)議市場(chǎng)增長(zhǎng)率將保持在32%

3、以上,在年度IT業(yè)界熱點(diǎn)技術(shù)中,視頻會(huì)議技術(shù)位居前列,顯示了這一市場(chǎng)的潛力確實(shí)值得期待。</p><p>  視頻會(huì)議管理系統(tǒng)通過錄像對(duì)會(huì)議的全程跟蹤和記錄,把會(huì)議記錄的圖像信息存儲(chǔ)到數(shù)據(jù)庫(kù)中,通過管理系統(tǒng)對(duì)數(shù)據(jù)庫(kù)中記錄進(jìn)行管理,實(shí)現(xiàn)了通過管理系統(tǒng)對(duì)會(huì)議的全程圖像信息進(jìn)行管理。</p><p>  本系統(tǒng)為單機(jī)版視頻管理系統(tǒng),通過攝像頭進(jìn)行圖像的攝錄,以記錄形式保存在數(shù)據(jù)庫(kù)中。通過對(duì)數(shù)據(jù)庫(kù)

4、中的記錄的管理實(shí)現(xiàn)對(duì)會(huì)議信息的管理。</p><p>  【關(guān)鍵詞】:會(huì)議視頻管理系統(tǒng)</p><p>  Video conference management system</p><p><b>  Abstract</b></p><p>  In order to adapt to the rapid deve

5、lopment of global economic integration, major companies around the world have set up branch offices of enterprises, in order to expand business in the economic sphere of influence. The continuous expansion of enterprise

6、scale, enterprise management to the emergence of the new regulatory requirements, in order to make the local branch of business decisions to make rapid response, the company is actively using technology -- video conferen

7、cing, unified the various</p><p>  The research shows that, the information of 55% accepted from face-to-face visual effect,38% speech depends on the speaker, and only 7% is dependent on the content of. With

8、 the development of computer network communication technology and telecommunications infrastructure to reduce the operating costs, a new generation of video conference system in the enterprise is widely used. In 2004and

9、2005, China video conference market growth rate will be maintained at more than 32%, in the annual IT indust</p><p>  Video conference management system by video tracking and recording of the meeting, the me

10、eting recorded image information stored in the database, the management system of database records management, realize the management system through the meeting of the entire image information management.</p><

11、p>  This system is the single plane version video management system, through the camera image video, to record forms are stored in the database. According to the records in the database to achieve the management of in

12、formation of conference management.</p><p>  【 key words 】 meeting video management system</p><p><b>  目錄</b></p><p><b>  摘要I</b></p><p>  Abst

13、ractII</p><p><b>  第一章 緒論1</b></p><p>  1.1 系統(tǒng)需求分析1</p><p>  1.2 視頻會(huì)議的意義1</p><p>  1.3 視頻會(huì)議的發(fā)展階段1</p><p>  1.4 國(guó)內(nèi)外現(xiàn)狀2</p><

14、;p>  1.5 VC++平臺(tái)簡(jiǎn)介3</p><p>  1.6 開發(fā)工具的選擇3</p><p>  第二章 系統(tǒng)設(shè)計(jì)5</p><p>  2.1 項(xiàng)目規(guī)劃5</p><p>  2.2 系統(tǒng)功能結(jié)構(gòu)5</p><p>  2.3 設(shè)計(jì)目標(biāo)6</p><p> 

15、 2.4 數(shù)據(jù)庫(kù)設(shè)計(jì)6</p><p>  2.4.1 開發(fā)及運(yùn)行環(huán)境6</p><p>  2.4.2 數(shù)據(jù)庫(kù)概要說明7</p><p>  2.4.3主要數(shù)據(jù)表的結(jié)構(gòu)7</p><p>  第三章 系統(tǒng)實(shí)現(xiàn)8</p><p>  3.1 構(gòu)建應(yīng)用程序框架8</p><p> 

16、 3.2 主窗口設(shè)計(jì)9</p><p>  3.2.1 菜單設(shè)計(jì)9</p><p>  3.2.2工具欄設(shè)計(jì)15</p><p>  3.2.3客戶區(qū)設(shè)計(jì)17</p><p>  3.3 系統(tǒng)登錄管理18</p><p>  3.3.1實(shí)現(xiàn)目標(biāo)18</p><p>  3.3.2

17、設(shè)計(jì)步驟19</p><p>  3.3.3代碼分析19</p><p>  3.4 視頻采集21</p><p>  3.4.1實(shí)現(xiàn)目標(biāo)21</p><p>  3.4.2設(shè)計(jì)步驟22</p><p>  3.4.3代碼分析22</p><p>  3.5 視頻錄像23<

18、;/p><p>  3.5.1實(shí)現(xiàn)目標(biāo)23</p><p>  3.5.2設(shè)計(jì)步驟23</p><p>  3.5.3代碼分析23</p><p>  第四章 用戶使用手冊(cè)25</p><p>  4.1 系統(tǒng)簡(jiǎn)介25</p><p>  4.1.1系統(tǒng)概述25</p>

19、<p>  4.1.2系統(tǒng)目標(biāo)25</p><p>  4.1.3系統(tǒng)范圍25</p><p>  4.1.4系統(tǒng)特點(diǎn)25</p><p>  4.2 系統(tǒng)運(yùn)行環(huán)境25</p><p>  4.3 系統(tǒng)登錄管理26</p><p>  4.4 視頻管理26</p><p

20、>  4.4.1視頻采集26</p><p>  4.4.2結(jié)束視頻采集27</p><p>  4.5 綜合設(shè)置27</p><p>  4.5.1視頻格式設(shè)定27</p><p>  4.5.2綜合設(shè)定28</p><p>  4.5.3載取圖像到剪貼板28</p><p&g

21、t;  4.5.4錄像29</p><p>  4.6 會(huì)議管理29</p><p>  4.6.1會(huì)議記錄29</p><p>  4.6.2會(huì)議查詢30</p><p>  4.7 系統(tǒng)維護(hù)31</p><p>  4.7.1數(shù)據(jù)備份31</p><p>  4.7.2數(shù)據(jù)還

22、原31</p><p>  4.7.3系統(tǒng)初始化32</p><p>  4.7.4開機(jī)自動(dòng)運(yùn)行32</p><p>  第五章 總結(jié)34</p><p><b>  5.1 結(jié)論34</b></p><p><b>  5.2 展望34</b></p&g

23、t;<p><b>  謝 辭35</b></p><p><b>  參考文獻(xiàn)36</b></p><p><b>  第一章 緒論</b></p><p>  視頻會(huì)議管理系統(tǒng)通過錄像對(duì)會(huì)議的全程跟蹤和記錄,把會(huì)議記錄的圖像信息存儲(chǔ)到數(shù)據(jù)庫(kù)中,通過管理系統(tǒng)對(duì)數(shù)據(jù)庫(kù)中記錄進(jìn)行管理

24、,實(shí)現(xiàn)了通過管理系統(tǒng)對(duì)會(huì)議的全程圖像信息進(jìn)行管理。</p><p>  本系統(tǒng)為單機(jī)版視頻管理系統(tǒng),通過攝像頭進(jìn)行圖像的攝錄,以記錄形式保存在數(shù)據(jù)庫(kù)中。通過對(duì)數(shù)據(jù)庫(kù)中的記錄的管理實(shí)現(xiàn)對(duì)會(huì)議信息的管理。</p><p>  1.1 系統(tǒng)需求分析</p><p>  根據(jù)市場(chǎng)的需求,要求系統(tǒng)具有以下功能:</p><p>  (1)記錄會(huì)議信息

25、。</p><p>  (2)具有數(shù)據(jù)備份及數(shù)據(jù)恢復(fù)的功能,確保系統(tǒng)的安全性。</p><p><b>  (3)視頻錄像。</b></p><p><b>  (4)視頻控制。</b></p><p>  (5)會(huì)議信息查詢。</p><p>  1.2 視頻會(huì)議的意義&

26、lt;/p><p>  隨著全球步入信息化時(shí)代,計(jì)算機(jī)技術(shù)、通信技術(shù)和多媒體技術(shù)的飛速發(fā)展,人們對(duì)了解事物、交換信息的要求已經(jīng)從紙、筆、書本、話音的發(fā)展到通過聲光電信號(hào)等各種方式更準(zhǔn)確、更快捷、更豐富地表達(dá)出來。在此需求的推動(dòng)下,多媒體計(jì)算機(jī)技術(shù)玉通信技術(shù)相結(jié)合,逐漸發(fā)展成為一種新的邊緣技術(shù)——多媒體通信技術(shù)。個(gè)人計(jì)算機(jī)的額普及、微電子技術(shù)和多媒體技術(shù)的飛速發(fā)展、中和業(yè)務(wù)數(shù)字網(wǎng)的建立及寬帶綜合業(yè)務(wù)數(shù)字網(wǎng)的研究進(jìn)展,都

27、有利地推動(dòng)了多媒體通信的發(fā)展,視頻會(huì)議系統(tǒng)即是這幾種技術(shù)的一種綜合應(yīng)用。</p><p>  1.3 視頻會(huì)議的發(fā)展階段</p><p>  視頻會(huì)議大致經(jīng)歷了以下幾個(gè)發(fā)展階段:</p><p>  (1)最早的視頻會(huì)議是采用模擬方式傳輸?shù)模捎谠谀M微波(或同軸電纜等)線路上傳輸一路模擬視頻會(huì)議信號(hào)所需帶寬為6MHz,相當(dāng)于占用960個(gè)電話線路的帶寬,在運(yùn)營(yíng)成

28、本上是較昂貴的,因此其商業(yè)推廣引用受到很大的限制。</p><p>  (2)1990年11U-T發(fā)布了用于ISDN、E1、T1上的群視頻會(huì)議標(biāo)準(zhǔn)化發(fā)揮了巨大的作用。</p><p>  (3)1996年5月11U-T制定了在分組交換網(wǎng)絡(luò)上工作的視頻會(huì)議的標(biāo)準(zhǔn)H.323,支持H.323協(xié)議的網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)是一種集中式、緊耦合會(huì)議系統(tǒng),期顯著特點(diǎn)是引入了多點(diǎn)控制單元MCU(Multipoi

29、nt Control Unit),由MCU將一個(gè)發(fā)送者的音視頻分別獨(dú)立地以IP單播(Unicast)方式轉(zhuǎn)發(fā)給多個(gè)接收者來實(shí)現(xiàn)多點(diǎn)交互,其好處是對(duì)會(huì)議成員的管理方便,但這將導(dǎo)致系統(tǒng)開銷和網(wǎng)絡(luò)負(fù)擔(dān)碎用戶數(shù)的增加而迅速增大,令系統(tǒng)無法進(jìn)行大規(guī)模擴(kuò)展。</p><p>  (4)1998年9月,ITU(International Telecommunications Union)在H.323的基礎(chǔ)上只動(dòng)了松禍合擴(kuò)展協(xié)議

30、H.323,該會(huì)議在網(wǎng)絡(luò)層使用坤組播技術(shù),采用分布式松耦合的系統(tǒng)結(jié)構(gòu),較好的解決視頻會(huì)議系統(tǒng)的規(guī)模擴(kuò)展問題。</p><p>  (5)幾年來,流媒體廣播技術(shù)越來越多的應(yīng)用于視頻會(huì)議系統(tǒng)。大部分廣播會(huì)議,如網(wǎng)上路演、采訪、現(xiàn)場(chǎng)會(huì)等,能夠?yàn)橛脩魝鬏敹嗝襟w信息,是對(duì)傳統(tǒng)視頻會(huì)議功能的擴(kuò)展。</p><p>  網(wǎng)絡(luò)會(huì)議將視頻、音頻的多媒體信息進(jìn)行綜合處理,通過通信網(wǎng)絡(luò)對(duì)多媒體數(shù)據(jù)進(jìn)行實(shí)時(shí)傳輸,

31、利用計(jì)算機(jī)系統(tǒng)提供的良好的交互功能和管理工呢,實(shí)現(xiàn)了人與人之間“面對(duì)面”的虛擬會(huì)議環(huán)境。網(wǎng)絡(luò)會(huì)議僵尸未來信息高速公路信息服務(wù)的重要內(nèi)容,將一大的改變?nèi)藗兊纳詈凸ぷ鞣绞?,?duì)社會(huì)的進(jìn)行會(huì)產(chǎn)生深遠(yuǎn)的影響。因此,網(wǎng)絡(luò)會(huì)議系統(tǒng)越來越受到人們的重視,許多大學(xué)、研究機(jī)構(gòu)都投入到網(wǎng)絡(luò)會(huì)議系統(tǒng)的研究中。當(dāng)前的視頻會(huì)議系統(tǒng)可以分為三種:一種是大型的視頻會(huì)議系統(tǒng),應(yīng)用于軍隊(duì)和大型企事業(yè)單位,這種系統(tǒng)具有非常好的效果,包括MCU等硬件系統(tǒng)組成,相對(duì)價(jià)格非常高

32、;等二種是中性的視頻會(huì)議系統(tǒng),它們提供輕型的MCU,軟件系統(tǒng)相對(duì)簡(jiǎn)單,可以用于一般公司和企事業(yè)單位,但價(jià)格還是相對(duì)高;最后一種是純軟件實(shí)現(xiàn)的視頻會(huì)議系統(tǒng),它們采用大型軟件公司童工的軟件平臺(tái)開發(fā)自主的小型視頻會(huì)議系統(tǒng),適用于要求不高的小型會(huì)議。</p><p>  以純軟件實(shí)現(xiàn)的視頻會(huì)議系統(tǒng)又分三種,一種是基于IP網(wǎng)絡(luò)的視頻會(huì)議系統(tǒng),該系統(tǒng)主要以TCP協(xié)議傳送媒體數(shù)據(jù),運(yùn)行中占用網(wǎng)絡(luò)寬帶較大;一種是基于組播的視頻會(huì)

33、議系統(tǒng),該系統(tǒng)主要以UDP協(xié)議來實(shí)現(xiàn)組播功能,運(yùn)行中占用網(wǎng)絡(luò)帶寬較小,但網(wǎng)絡(luò)質(zhì)量無法保證,缺乏反饋機(jī)制;最后一種是基于流媒體的視頻會(huì)議系統(tǒng),該系統(tǒng)主要以RTP洗衣傳送媒體數(shù)據(jù),以RTCP協(xié)議提供數(shù)據(jù)發(fā)布的質(zhì)量反饋,但由于其沒有實(shí)現(xiàn)組播機(jī)制,當(dāng)客戶端喝多時(shí),網(wǎng)絡(luò)延遲較大。</p><p>  1.4 國(guó)內(nèi)外現(xiàn)狀</p><p>  目前國(guó)內(nèi)外的視頻會(huì)議系統(tǒng)主要是及時(shí)雨兩個(gè)標(biāo)準(zhǔn):H.32X

34、和SIP。H.32X由ITU-T(國(guó)際電信—電信標(biāo)準(zhǔn)化部門)制定;SIP(會(huì)話啟動(dòng)協(xié)議)由IETF(Internet工程任務(wù)組)的SIP中作組制定,是一個(gè)面向Internet會(huì)議和電話的信令協(xié)議。面前商業(yè)化的視頻會(huì)議大多準(zhǔn)許你H.323標(biāo)準(zhǔn)。這是因?yàn)镠.323標(biāo)準(zhǔn)的成熟性,有助于諸多軟件供應(yīng)商開發(fā)性能穩(wěn)定的設(shè)備,并且有利于不同的供應(yīng)商之間消除互操作性中出現(xiàn)的問題,并在市場(chǎng)上推出各種支持H.323標(biāo)準(zhǔn)的設(shè)備。缺點(diǎn)是當(dāng)客戶端增加時(shí),由于服務(wù)

35、器CPU處理能力\內(nèi)存、網(wǎng)絡(luò)帶寬的限制,會(huì)使會(huì)議質(zhì)量明顯下降。</p><p>  SIP基于現(xiàn)有的IP網(wǎng)絡(luò)協(xié)議提供多媒體業(yè)務(wù)的協(xié)議,是一個(gè)分散式協(xié)議,它將網(wǎng)絡(luò)設(shè)備的復(fù)雜性推向網(wǎng)絡(luò)邊緣,需要相對(duì)只能的終端,協(xié)議也比較簡(jiǎn)單。有點(diǎn)包括:該協(xié)議具有可擴(kuò)展特性,可以輕松定義并迅速發(fā)展實(shí)現(xiàn)新功能;缺點(diǎn)是問世不久,大多數(shù)應(yīng)用處于原型階段,該協(xié)議單獨(dú)應(yīng)用的范圍較窄。</p><p>  視屏?xí)h系統(tǒng)經(jīng)常

36、采用的架構(gòu)有C/S(Client/Server即客戶機(jī)/服務(wù)器)和B/S(Browser/Server即瀏覽器/服務(wù)器)結(jié)構(gòu),這兩種結(jié)構(gòu)后者是從前者發(fā)展而來的,它們的本質(zhì)都是C/S而二層結(jié)構(gòu)的C/S模式存在諸多問題,例如開發(fā)和維護(hù)成本高,服務(wù)器負(fù)載重,靈活性差,缺乏開放性,難以與Internet/Intranet接軌等,造成系統(tǒng)使用和維護(hù)中的許多難題。三層的B/S模式雖然開發(fā)和維護(hù)比較容易,但服務(wù)器負(fù)載重,理論上會(huì)議參加者的數(shù)量可以很多

37、,實(shí)際效果并不令人滿意,服務(wù)器成為會(huì)議系統(tǒng)的瓶頸。在網(wǎng)絡(luò)狀況較好并且與會(huì)人員數(shù)量不多的情況下,視頻會(huì)議系統(tǒng)能夠提供令人滿意的效果。但是不用與會(huì)者的網(wǎng)絡(luò)帶寬質(zhì)量參差不齊,隨著與會(huì)者數(shù)量的增加,視頻圖像。</p><p>  1.5 VC++平臺(tái)簡(jiǎn)介</p><p>  C++語言是從C語言發(fā)展而來的,而C語言的歷史可以追溯到1969年。在1969年,美國(guó)貝爾實(shí)驗(yàn)室的Ken Thompson

38、為DEC PDP-7計(jì)算機(jī)設(shè)計(jì)了一個(gè)操作系統(tǒng),這就是最早的UNIX。接著,他又根據(jù)劍橋大學(xué)的Martin Richards設(shè)計(jì)的BCPL語言為UNIX設(shè)計(jì)了一種便于編寫系統(tǒng)軟件的語言,命名為B。作為系統(tǒng)軟件編程語言的第一個(gè)應(yīng)用,Ken Thompson使用B語言重寫了其自身的解釋程序。1972-1973年間,同在貝爾實(shí)驗(yàn)室的Denis Ritchie改造了B語言,為其添加了數(shù)據(jù)類型的概念,并將原來的解釋程序改寫為可以直接生成機(jī)器代碼的編

39、譯程序,然后將其命名為C,1973年,Ken Thompson小組在PDP-11上用C語言重新改寫了UNIX的內(nèi)核。與此同時(shí),C語言的編譯程序也移植到IBM360/370,Honeywell-11及VAX-11/780等多種計(jì)算機(jī)上,迅速成為應(yīng)用最廣泛的系統(tǒng)程序語言。</p><p>  然而,C語言也存在一些缺陷,如類型檢查機(jī)制相對(duì)較弱,缺少支持代碼重組的機(jī)制等,造成用C語言開發(fā)大型程序比較困難。為了克服C語言

40、存在的缺點(diǎn),貝爾實(shí)驗(yàn)室的Bjarne Stroustrup博士及其同事開始對(duì)C語言進(jìn)行改進(jìn)和擴(kuò)充,將“類”的概念引入了C語言,構(gòu)成了最早的C++語言(1983),后來Stroustrup和他的同事們又為C++語言引進(jìn)了運(yùn)算符重載、引用、虛函數(shù)等許多特性,并使之更加精煉,于19989年推出了AT&TCC++2.0版。隨后美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI(American Nation Standard Instiute)和國(guó)際標(biāo)準(zhǔn)化組織

41、ISO(International Standard Organization)一起進(jìn)行了標(biāo)準(zhǔn)化工作,并于1998年正式發(fā)布了C++語言的國(guó)際標(biāo)準(zhǔn)ISO/IEC:98-14882.各軟件商推出的C++語言編譯器都支持該標(biāo)準(zhǔn),并有不同程度的擴(kuò)展。C++語言支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,特別適合于中型和大型的軟件開發(fā)項(xiàng)目,從開發(fā)時(shí)間、費(fèi)用到軟件的重用性、可擴(kuò)充性、可維護(hù)性和可靠性等方面,C++語言均有很大的優(yōu)越性。同時(shí),C++語言又是C語言的

42、超</p><p>  VC++是在Windows平臺(tái)下構(gòu)建32位應(yīng)用程序的強(qiáng)大而又復(fù)雜的開發(fā)工具,是目前世界上使用非常廣泛的工具之一。VC++的應(yīng)用非常廣泛,從桌面應(yīng)用程序到服務(wù)器端軟件,從系統(tǒng)軟件到應(yīng)用軟件,從單機(jī)程序到分布式應(yīng)用程序,從圖形圖像處理到游戲開發(fā),VC++無所不在 [6]。VC++是Windows平臺(tái)上的C++編程環(huán)境,學(xué)習(xí)VC要了解很多Windows平臺(tái)的特性并且還要掌握MFC、ATL、COM

43、等的知識(shí),難度比較大。</p><p>  VC++ Developer Studio 包含有編寫程序源代碼的編輯器,設(shè)計(jì)用戶界面(菜單、對(duì)話框、圖標(biāo)等)的資源編輯器,建立項(xiàng)目配置的項(xiàng)目管理器,檢查程序錯(cuò)誤的集成調(diào)式等工具,同時(shí),它還提供了功能強(qiáng)大的應(yīng)用程序向?qū)ppWizard和類向?qū)lassWizard工具。AppWizard用于生成各種不同類型的具有Windows界面風(fēng)格的應(yīng)用程序的基本框架,在生成應(yīng)用程

44、序框架后,使用ClassWizard便可輕松完成創(chuàng)建新類,映射消息、定義消息處理函數(shù)、重載虛函數(shù)等操作[1]。</p><p>  1.6 開發(fā)工具的選擇</p><p>  會(huì)議視頻管理系統(tǒng)采用Microsoft公司的Visual C++6.0進(jìn)行開發(fā)。相信大家都聽說過這樣一句話,“聰明的程序員使用Delphi,真正的程序員使用VC”,與其他工具相比, Visual

45、 C++具有以下特點(diǎn):</p><p>  (1)Visual C++工具以C++語言為基礎(chǔ),因此生成的可執(zhí)行文件小,執(zhí)行效率高。</p><p>  (2)Visual C++具有強(qiáng)大的調(diào)試功能,可以設(shè)置和跟蹤斷點(diǎn),查看棧和變量信息,能夠自動(dòng)檢測(cè)內(nèi)存泄露。</p><p>  (3)Visual C++具有強(qiáng)大的硬件控制功能,與VB、Delphi的RAD開發(fā)工具不

46、同,Visual C++擁有很強(qiáng)的底層控制能力,現(xiàn)今的許多驅(qū)動(dòng)程序都采用Visual C++進(jìn)行開發(fā)。</p><p>  (4)Visual C++具有豐富的幫助文檔,即MSDN。MSDN包含了幾GB的文檔和源代碼,通過它,可以解決各種技術(shù)難題。</p><p>  (5)Visual C++出自Micorosoft公司,因此,對(duì)Windows系統(tǒng)的新技術(shù)具有很好的支持,而其他公司的產(chǎn)品

47、似乎總慢上半</p><p><b>  第二章 系統(tǒng)設(shè)計(jì)</b></p><p><b>  2.1 項(xiàng)目規(guī)劃</b></p><p>  根據(jù)需求分析,設(shè)計(jì)系統(tǒng)框架。會(huì)議視頻管理系統(tǒng)由視頻管理、綜合設(shè)置、會(huì)議管理、系統(tǒng)維護(hù)、系統(tǒng)幫助等5部分組成。設(shè)計(jì)各部分具體功能如下:</p><p>&l

48、t;b>  (1)視頻管理模塊</b></p><p>  視頻管理模塊包括視頻采集和結(jié)束視頻采集兩部分。</p><p><b>  (2)綜合設(shè)置模塊</b></p><p>  綜合設(shè)置模塊由視頻格式設(shè)定、綜合設(shè)定、載取圖像到剪貼板、視頻壓縮、錄像5部分組成。</p><p><b> 

49、 (3)會(huì)議管理模塊</b></p><p>  會(huì)議管理模塊主要由會(huì)議記錄和會(huì)議查詢兩部分組成。</p><p><b>  (4)系統(tǒng)維護(hù)模塊</b></p><p>  系統(tǒng)維護(hù)模塊包括數(shù)據(jù)備份、數(shù)據(jù)還原、系統(tǒng)初始化、開機(jī)自動(dòng)運(yùn)行4個(gè)部分。</p><p><b>  (5)系統(tǒng)幫助模塊<

50、;/b></p><p>  系統(tǒng)幫助模塊由關(guān)于視頻系統(tǒng)和幫助內(nèi)容兩部分構(gòu)成。</p><p>  2.2 系統(tǒng)功能結(jié)構(gòu)</p><p>  會(huì)議視頻系統(tǒng)的功能結(jié)構(gòu)如圖2-1所示。</p><p>  圖2-1 會(huì)議視頻系統(tǒng)功能結(jié)構(gòu)圖</p><p>  (1)單擊【視頻管理】/【視頻采集】選項(xiàng),顯示器直接顯

51、示攝像頭所對(duì)的人或物</p><p>  (2)單擊【視頻管理】/【結(jié)束視頻采集】選項(xiàng),顯示器將停止對(duì)人或物的顯示</p><p>  (3)單擊【綜合設(shè)置】/【視頻格式設(shè)定】選項(xiàng),進(jìn)入到 “視頻格式設(shè)定”模塊。</p><p>  單擊 “備份路徑”后的按鈕,選擇數(shù)據(jù)保存的路徑,然后單擊【確定】按鈕,即完成數(shù)據(jù)備份操作。</p><p> 

52、 通過“數(shù)據(jù)圖像格式”的下拉按鈕設(shè)置分辨率,調(diào)整圖像的像素。單擊【確定】按鈕。即完成視頻格式設(shè)定操作。</p><p>  (4)單擊【綜合設(shè)置】/【綜合設(shè)定】選項(xiàng),進(jìn)入到“綜合設(shè)定”模塊。</p><p>  (5)單擊【綜合設(shè)置】/【載取圖像到剪貼板】選項(xiàng),進(jìn)入到“載取圖像到剪貼板”模塊。</p><p>  雙擊“載取圖像”然后打開畫圖工具,單擊鼠標(biāo)右鍵選擇“

53、粘貼”選項(xiàng),載取的圖像粘貼到畫圖工具里。然后可以對(duì)圖進(jìn)行常規(guī)操作。</p><p>  (6)單擊【綜合設(shè)置】/【錄像】選項(xiàng),進(jìn)入到“錄像”模塊。</p><p>  單擊【會(huì)議管理】/【會(huì)議記錄】選項(xiàng),進(jìn)入到“會(huì)議記錄”模塊。</p><p>  該模塊可直接在“會(huì)議主題”文本框輸入相應(yīng)的內(nèi)容,設(shè)置“時(shí)間”的下拉按鈕選擇相應(yīng)的選項(xiàng)。在“主持人”和“參加人員”的文本

54、框輸入相應(yīng)的內(nèi)容。最后單擊【保存】按鈕。即完成會(huì)議信息的保存。</p><p>  (7)單擊【會(huì)議管理】/【會(huì)議查詢】選項(xiàng),進(jìn)入到“會(huì)議查詢”模塊。</p><p>  (8)單擊【系統(tǒng)維護(hù)】/【數(shù)據(jù)備份】選項(xiàng),進(jìn)入到 “數(shù)據(jù)備份”模塊。</p><p>  (9)單擊【系統(tǒng)維護(hù)】/【數(shù)據(jù)還原】選項(xiàng),進(jìn)入到 “數(shù)據(jù)還原”模塊。</p><p&g

55、t;  單擊 “數(shù)據(jù)庫(kù)備份件”后的按鈕,選擇剛剛備份的數(shù)據(jù)位置,單擊【確定】按鈕,即完成數(shù)據(jù)還原操作。</p><p>  (10)單擊【系統(tǒng)維護(hù)】/【系統(tǒng)初始化】選項(xiàng),進(jìn)入到“系統(tǒng)初始化”模塊。</p><p>  單擊 “數(shù)據(jù)庫(kù)腳本”后的按鈕,選擇數(shù)據(jù)庫(kù)位置,然后單擊【初始化】按鈕,系統(tǒng)自動(dòng)彈出確認(rèn)框,進(jìn)行確認(rèn)后即完成系統(tǒng)初始化。</p><p>  (11)單

56、擊【系統(tǒng)維護(hù)】/【開機(jī)自動(dòng)運(yùn)行】選項(xiàng),進(jìn)入到“開機(jī)自動(dòng)運(yùn)行”模塊。</p><p>  勾選“系統(tǒng)設(shè)置”的任意一個(gè)選項(xiàng),單擊【確定】按鈕即設(shè)置成功。</p><p><b>  2.3 設(shè)計(jì)目標(biāo)</b></p><p>  本系統(tǒng)是根據(jù)中小企業(yè)的實(shí)際需求而開發(fā)的,完全能夠?qū)崿F(xiàn)企業(yè)的會(huì)議視頻管理,通過本系統(tǒng)可以達(dá)到以下目標(biāo):</p>

57、<p>  (1)系統(tǒng)運(yùn)行穩(wěn)定,安全可靠。</p><p>  (2)界面設(shè)計(jì)美觀,人機(jī)交互界面友好。</p><p>  (3)信息查詢靈活、方便、快捷、準(zhǔn)確,數(shù)據(jù)存儲(chǔ)安全可靠。</p><p>  (4)滿足鍵盤和鼠標(biāo)的雙重操作,完全支持回車鍵。</p><p>  (5)信息安全保密。</p><p&g

58、t;<b>  2.4 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  2.4.1 開發(fā)及運(yùn)行環(huán)境</p><p>  CPU:300MHz以上的處理器。</p><p>  內(nèi)存:128MB,推薦256MB。</p><p>  硬盤:150MB以上剩余空間。</p><p>  顯示像素:最低800*

59、600,最佳效果1024*768。</p><p>  攝像頭:百腦通攝像頭。</p><p>  操作系統(tǒng):Windows2000/NT/XP/CE。</p><p>  數(shù)據(jù)庫(kù):SQL Server2000。</p><p>  驅(qū)動(dòng)程序:百腦通驅(qū)動(dòng)程序。</p><p>  2.4.2 數(shù)據(jù)庫(kù)概要說明</p

60、><p>  數(shù)據(jù)庫(kù)的選擇應(yīng)根據(jù)實(shí)際情況確定,首先應(yīng)考慮用戶的數(shù)據(jù)量大小,如果數(shù)據(jù)量不大,可以采用本地?cái)?shù)據(jù)庫(kù),例如Access、Paradox等,如果數(shù)量大,應(yīng)采用大型數(shù)據(jù)庫(kù),例如SQL Server、Oracle、Sybase等。其次應(yīng)考慮經(jīng)費(fèi)問題,因此一套大型數(shù)據(jù)庫(kù)需要幾萬、甚至幾十萬的價(jià)格,所以在選擇數(shù)據(jù)庫(kù)時(shí),還需要充分考慮用戶的實(shí)際條件。</p><p>  2.4.3主要數(shù)據(jù)表的結(jié)構(gòu)

61、</p><p>  本系統(tǒng)采用SQL Server 2000 數(shù)據(jù)庫(kù),系統(tǒng)數(shù)據(jù)庫(kù)名為DB_Capture,數(shù)據(jù)庫(kù)DB_Capture由tb_conference、tb_login兩張數(shù)據(jù)表構(gòu)成。由于篇幅有限,只給出部分?jǐn)?shù)據(jù)表。</p><p>  表2-1 tb_conference(會(huì)議信息表)</p><p>  表2-2 tb_login(登錄信息表)<

62、;/p><p><b>  第三章 系統(tǒng)實(shí)現(xiàn)</b></p><p>  3.1 構(gòu)建應(yīng)用程序框架</p><p>  會(huì)議視頻管理系統(tǒng)采用單文檔/視圖結(jié)構(gòu)。框架設(shè)計(jì)步驟如下:</p><p>  (1)在Visual C++集成開發(fā)環(huán)境中單擊“File/New”菜單項(xiàng),打開New窗口,選擇Projects選項(xiàng)卡,如圖3

63、-1所示。</p><p>  圖3-1 New窗口</p><p>  (2)在New窗口中選擇“MFC AppWizard(exe)”選項(xiàng),在“Project name”編輯框中輸入工程名稱,這里為“Capture”,單擊“OK”按鈕進(jìn)入MFC應(yīng)用程序向?qū)Р襟E1窗口,如圖3-2所示。</p><p>  圖3-2 MFC應(yīng)用程序向?qū)Р襟E1窗口</p&g

64、t;<p>  (3)選擇“Single document”選項(xiàng),表示創(chuàng)建單文檔/視圖結(jié)構(gòu)應(yīng)用程序,單擊“Finish”按鈕創(chuàng)建應(yīng)用程序框架。</p><p>  3.2 主窗口設(shè)計(jì)</p><p>  會(huì)議視頻管理系統(tǒng)主窗口由菜單、工具欄、客戶區(qū)和狀態(tài)欄組成,其中狀態(tài)欄采用系統(tǒng)默認(rèn)創(chuàng)建的狀態(tài)欄,其他部分需要額外設(shè)計(jì)。主窗口運(yùn)行效果如圖3-3所示。</p>&

65、lt;p>  圖3-3 主窗口效果圖</p><p>  3.2.1 菜單設(shè)計(jì)</p><p><b>  (1)設(shè)計(jì)菜單資源</b></p><p>  菜單是應(yīng)用程序經(jīng)常使用的界面元素,它對(duì)應(yīng)著應(yīng)用程序的一項(xiàng)功能,單擊菜單項(xiàng)將會(huì)執(zhí)行欲定義的操作。下面我的詳細(xì)介紹菜單的設(shè)計(jì)過程。</p><p>  1)在工作區(qū)

66、窗口中選中“ResourceView”標(biāo)簽頁(yè),如圖3-4所示。</p><p>  圖3-4 資源視圖窗口</p><p>  2)展開“Menu”節(jié)點(diǎn),默認(rèn)情況下,在文檔\視圖結(jié)構(gòu)中,MFC向?qū)?huì)創(chuàng)建一個(gè)菜單資源“IDR_MAINFRAME”,雙擊該資源節(jié)點(diǎn),打開菜單資源編輯窗口,修改菜單資源如下:</p><p><b>  BEGIN</b&g

67、t;</p><p>  POPUP "視頻管理"</p><p><b>  BEGIN</b></p><p>  MENUITEM "視頻采集", ID_Set_disPlay</p><p>  MENUITEM "結(jié)束視頻采

68、集", ID_MENUITEMEnd</p><p><b>  END</b></p><p>  POPUP "綜合設(shè)置"</p><p><b>  BEGIN</b></p><p>  MENUITEM "視頻格式設(shè)定&

69、quot;, ID_Set_disFormat</p><p>  MENUITEM "綜合設(shè)定", ID_Set_dissorce</p><p>  MENUITEM "載取圖像到剪貼板", IDC_PICPIC</p><p>  

70、MENUITEM "視頻壓縮", ID_VideoCompress</p><p>  MENUITEM "錄像", IDCAPTURE</p><p><b>  END</b></p><p>  POPUP &quo

71、t;會(huì)議管理"</p><p><b>  BEGIN</b></p><p>  MENUITEM "會(huì)議記錄", ID_MENUITEMRECORD</p><p>  MENUITEM "會(huì)議查詢", ID_MEN

72、UITEMQUERY</p><p><b>  END</b></p><p>  POPUP "系統(tǒng)維護(hù)"</p><p><b>  BEGIN</b></p><p>  MENUITEM "數(shù)據(jù)備份", ID_M

73、ENUITEMBACK</p><p>  MENUITEM "數(shù)據(jù)還原", ID_MENUITEMRESTORE</p><p>  MENUITEM "系統(tǒng)初始化", ID_MENUITEMSYSINI</p><p>  MENUITEM "

74、;開機(jī)自動(dòng)運(yùn)行", ID_MENUIAUTORUN</p><p><b>  END</b></p><p>  POPUP "幫助 "</p><p><b>  BEGIN</b></p><p>  MENUITEM "

75、關(guān)于視頻系統(tǒng)...", ID_APP_ABOUT</p><p>  MENUITEM "幫助內(nèi)容", ID_MENUITEMHELP</p><p><b>  END</b></p><p><b>  END</b></

76、p><p><b>  (2)自定義菜單類</b></p><p>  默認(rèn)情況下,Visual C++中的菜單并不能顯示圖標(biāo)。如果需要在菜單項(xiàng)中顯示圖標(biāo),需要自己重新封裝菜單類CMenu。在本系統(tǒng)中,本人自定義了一個(gè)菜單類CMyMenu,該類能夠在菜項(xiàng)項(xiàng)中顯示圖標(biāo),并且實(shí)現(xiàn)了菜單項(xiàng)的重繪,效果如圖3-5所示。</p><p>  圖3-5 菜單設(shè)

77、計(jì)效果圖</p><p>  CMyMenu類設(shè)計(jì)步驟如下:</p><p>  1)新建一個(gè)CMyMenu類,該類派生于CMenu。</p><p>  2)定義一個(gè)CMenuItemInfo類,該類用于記錄菜單項(xiàng)的信息,包括菜單項(xiàng)的圖標(biāo)索引、菜單項(xiàng)文本、菜單項(xiàng)ID,代碼如下:</p><p>  /********************

78、******************************</p><p><b>  定義菜單項(xiàng)信息</b></p><p>  **************************************************/</p><p>  class CMenuItemInfo</p><p><

79、b>  {</b></p><p><b>  public:</b></p><p>  CMenuItemInfo(){m_MenuID = 0;};</p><p>  ~CMenuItemInfo(){};</p><p>  UINT m_Iconindex;//菜單項(xiàng)圖標(biāo)索引</p&g

80、t;<p>  CString m_Text;//菜單項(xiàng)文本</p><p>  int m_MenuID;//菜單標(biāo)識(shí),-2頂層菜單,-1彈出式菜單,0分隔條,命令I(lǐng)D普通菜單</p><p><b>  };</b></p><p>  3)為CMyMenu類添加3個(gè)成員變量,如下:</p><p> 

81、 UINT m_index;</p><p>  UINT m_imageindex;</p><p>  CMenuItemInfo Menus[100];//記錄菜單項(xiàng)信息</p><p>  4)添加ResetMenuStyle方法,該方法用于修改菜單項(xiàng)的風(fēng)格,使菜單項(xiàng)具有重繪功能,設(shè)置菜單項(xiàng)信息。在ResetMenuStyle方法中利用遞歸的方式遍歷菜單資源

82、中的每個(gè)菜單項(xiàng),代碼如下:</p><p>  void CMyMenu::ResetMenuStyle(HMENU m_hmenu,BOOL IsTop)</p><p><b>  {</b></p><p>  CMenu* m_pMenu;//菜單指針</p><p>  m_pMenu = CMenu::Fro

83、mHandle(m_hmenu);//根據(jù)句柄獲取菜單指針</p><p>  if (m_pMenu!= NULL)</p><p><b>  {</b></p><p>  for (UINT i = 0;i <m_pMenu->GetMenuItemCount();i++)</p><p><b

84、>  {</b></p><p>  int m = m_pMenu->GetMenuItemID(i);//獲取菜單項(xiàng)ID</p><p>  Menus[m_index].m_MenuID = m;// m_pMenu->GetMenuItemID(i); //如果為彈出式菜單,返回-1,</p><p>  //分隔條返回0,普通

85、菜單,返回ID</p><p>  if ( ((Menus[m_index].m_MenuID<0) &&IsTop==TRUE)) //頂層菜單</p><p>  Menus[m_index].m_MenuID = -2;</p><p>  Menus[m_index].m_Iconindex = -1;</p><

86、;p>  m_pMenu->GetMenuString(i,Menus[m_index].m_Text,MF_BYPOSITION);//獲取菜單項(xiàng)文本</p><p>  m_pMenu->ModifyMenu(i,MF_OWNERDRAW|MF_BYPOSITION |MF_STRING,</p><p>  Menus[m_index].m_MenuID,(LPCT

87、STR)(&Menus[m_index]));//修改菜單信息</p><p>  if (Menus[m_index].m_MenuID>0)</p><p><b>  {</b></p><p>  Menus[m_index].m_Iconindex = m_imageindex;//設(shè)置菜單項(xiàng)圖標(biāo)索引</p>

88、;<p>  m_imageindex += 1;</p><p><b>  }</b></p><p>  m_index+=1;</p><p>  CMenu* m_pSubmenu = m_pMenu->GetSubMenu(i);//獲取子菜單</p><p>  if (m_pSubme

89、nu )//如果存在子菜單,利用遞歸修改其風(fēng)格</p><p><b>  {</b></p><p>  ResetMenuStyle(m_pSubmenu->GetSafeHmenu());</p><p><b>  }</b></p><p><b>  }</b>

90、;</p><p><b>  }</b></p><p><b>  }</b></p><p>  5)添加AttachMenu方法,該方法將菜單與指定的句柄關(guān)聯(lián),并調(diào)用ResetMenuStyle方法修改菜單風(fēng)格。代碼如下:</p><p>  /***********************

91、****************</p><p>  函 數(shù) 名: AttachMenu</p><p>  作 用: 將菜單資源與菜單類關(guān)聯(lián),改變菜單風(fēng)格</p><p>  參 數(shù): m_hmenu是菜單資源句柄</p><p>  返 回 值: 執(zhí)行成功返回值為true,否則出錯(cuò)</p><

92、;p>  ***************************************/</p><p>  bool CMyMenu::AttachMenu(HMENU m_hmenu)</p><p><b>  {</b></p><p>  Attach(m_hmenu);</p><p>  Reset

93、MenuStyle(m_hmenu,true);</p><p>  return true;</p><p><b>  }</b></p><p>  6)改寫菜單項(xiàng)的MeasureItem方法,設(shè)置頂層菜單、彈出示菜單、分隔條、普通菜單的大小。代碼如下:</p><p>  //根據(jù)菜單的風(fēng)格確定菜單項(xiàng)的大小<

94、;/p><p>  void CMyMenu::MeasureItem( LPMEASUREITEMSTRUCT lpMeasureItemStruct )</p><p><b>  {</b></p><p>  lpMeasureItemStruct->itemHeight = 26;</p><p>  lpM

95、easureItemStruct->itemWidth = 130;</p><p>  UINT m_type;</p><p>  m_type = ((CMenuItemInfo*)(lpMeasureItemStruct->itemData))->m_MenuID;</p><p>  switch(m_type)</p>&

96、lt;p><b>  {</b></p><p>  case -2: //頂層菜單</p><p><b>  {</b></p><p>  lpMeasureItemStruct->itemWidth = ((CMenuItemInfo*)</p><p>  (lpMeasure

97、ItemStruct->itemData))->m_Text.GetLength()*10;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  case -1: //彈出式菜單</p><p><b>  {</

98、b></p><p>  lpMeasureItemStruct->itemWidth = ((CMenuItemInfo*)</p><p>  (lpMeasureItemStruct->itemData))->m_Text.GetLength()*10;</p><p><b>  break;</b><

99、;/p><p><b>  }</b></p><p>  case 0: //分隔條</p><p><b>  {</b></p><p>  lpMeasureItemStruct->itemHeight = 10;</p><p><b>  bre

100、ak;</b></p><p><b>  }</b></p><p>  default: //普通菜單項(xiàng)</p><p><b>  {</b></p><p><b>  break;</b></p><p><b>  

101、}</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  7)改寫菜單項(xiàng)的DrawItem方法,修改繪制菜單。在該方法中調(diào)用了多個(gè)自定義的方法,這些方法用戶繪制菜單的圖標(biāo)、文本、背景顏色等。</p><p><b>  

102、//重新繪制菜單項(xiàng)</b></p><p>  void CMyMenu::DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct )</p><p><b>  {</b></p><p>  if (lpDrawItemStruct->CtlType = ODT_MENU)</p>

103、;<p><b>  {</b></p><p>  if(lpDrawItemStruct->itemData == NULL)return;</p><p>  CDC* pdc = CDC::FromHandle(lpDrawItemStruct->hDC);</p><p>  pdc->SetBkMo

104、de(TRANSPARENT);</p><p>  CRect m_rect (lpDrawItemStruct->rcItem);</p><p>  CString m_text = ((CMenuItemInfo*)(lpDrawItemStruct->itemData))->m_Text;</p><p>  UINT m_MenuID,

105、m_State,m_imageid;</p><p>  m_imageid = ((CMenuItemInfo*)(lpDrawItemStruct->itemData))->m_Iconindex;</p><p>  m_State = lpDrawItemStruct->itemState;</p><p>  m_MenuID = ((

106、CMenuItemInfo*)(lpDrawItemStruct->itemData))->m_MenuID;</p><p>  switch(m_MenuID)</p><p><b>  {</b></p><p><b>  case -2:</b></p><p><b&

107、gt;  {</b></p><p>  DrawTopMenu(pdc,m_rect,m_State&ODS_SELECTED);</p><p>  DrawText(pdc,m_rect,m_text);</p><p><b>  break;</b></p><p><b>  }

108、</b></p><p><b>  case -1:</b></p><p><b>  {</b></p><p>  if (m_State&ODS_SELECTED)</p><p>  DrawBestRect(pdc,m_rect,0xff00ff,0xfffff,f

109、alse);</p><p><b>  else</b></p><p>  DrawTopMenu(pdc,m_rect,false);</p><p>  DrawText(pdc,m_rect,m_text);</p><p>  break;</p><p><b&

110、gt;  }</b></p><p><b>  case 0: </b></p><p><b>  {</b></p><p>  CRect rect1(m_rect);</p><p>  rect1.DeflateRect(2,10,2,5);</p><p

111、>  pdc->Draw3dRect(&rect1,RGB(64,0,128),RGB(255,255,255));</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  default:</b></p>

112、<p><b>  {</b></p><p>  CRect c_rect (m_rect);</p><p>  DrawBKColor(pdc,c_rect,m_State&ODS_SELECTED);</p><p>  DrawText(pdc,m_rect,m_text);</p><p>

113、;  DrawMenuIcon(pdc, m_imageid,m_rect,true);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b

114、></p><p><b>  }</b></p><p>  8)在框架類中定義一個(gè)CMyMenu變量m_menu,處理框架的WM_DRAWITEM、WM_MEASUREITEM消息,代碼如下:</p><p>  void CMainFrame::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUC

115、T lpMeasureItemStruct) </p><p><b>  {</b></p><p>  m_menu.MeasureItem(lpMeasureItemStruct);</p><p><b>  }</b></p><p>  void CMainFrame::OnDrawIt

116、em(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) </p><p><b>  {</b></p><p>  m_menu.DrawItem(lpDrawItemStruct);</p><p><b>  }</b></p><p>  3.2.

117、2工具欄設(shè)計(jì)</p><p>  默認(rèn)情況下,在文檔\視圖結(jié)構(gòu)中MFC應(yīng)用程序向?qū)?huì)創(chuàng)建一個(gè)工具欄。該工具欄是一個(gè)普通的工具欄,背景不能夠顯示圖像,為此,本人修改了該工具欄,使其背景透明,效果如圖3-6所示。</p><p>  圖3-6 工具欄效果圖</p><p>  MFC提供的工具欄類CToolBar,背景不能顯示圖像,因此本人又添加了一個(gè)CReBar對(duì)象m

118、_rebar,CReBar能夠作為工具欄的容器,并且可以設(shè)置背景圖像,如果將工具欄放置在CReBar控件中,并將工具欄設(shè)置為透明效果,這樣,工具欄不就可以顯示圖像背景了嗎?</p><p>  工具欄除了顯示背景圖像外,還應(yīng)顯示工具欄按鈕圖標(biāo)。可以在程序中定義一個(gè)CImageList控件,通過該控件添加一組圖標(biāo),調(diào)用工具欄的“GetToolBarCtrl().SetHotImageList()”方法設(shè)置圖像列表。

119、</p><p>  工具欄創(chuàng)建過程代碼如下:</p><p>  if (!m_wndToolBar.CreateEx(this,WS_CHILD| CBRS_TOOLTIPS|CBRS_FLOATING| WS_VISIBLE | </p><p>  CBRS_ALIGN_TOP|TBSTYLE_FLAT))</p><p><b

120、>  {</b></p><p>  TRACE0("Failed to create toolbar\n");</p><p>  return -1; </p><p><b>  }</b></p><p>  m_wndToolBar.SetButtons(NULL,1

121、3);</p><p>  int record = 0;</p><p>  CString menutext;</p><p>  CCHAR* c_temp;</p><p>  for (int m = 0;m<13;m++)</p><p><b>  {</b></p>

122、;<p>  if ((m+1) % 3 ==0)</p><p>  m_wndToolBar.SetButtonStyle(m,TBBS_SEPARATOR);</p><p><b>  else</b></p><p><b>  {</b></p><p>  m_wndT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論