郵件客戶端系統(tǒng)的設(shè)計與實現(xiàn)--_第1頁
郵件客戶端系統(tǒng)的設(shè)計與實現(xiàn)--_第2頁
郵件客戶端系統(tǒng)的設(shè)計與實現(xiàn)--_第3頁
郵件客戶端系統(tǒng)的設(shè)計與實現(xiàn)--_第4頁
郵件客戶端系統(tǒng)的設(shè)計與實現(xiàn)--_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要隨著改革開放的深入發(fā)展,社會主義市場經(jīng)濟的建立,信息化時代的步伐不斷加快。根據(jù)最新公布的2006-2020國家信息化發(fā)展戰(zhàn)略,信息化是充分利用信息技術(shù),開發(fā)利用信息資源,促進(jìn)信息交流和知識共享,提高經(jīng)濟增長質(zhì)量,推動經(jīng)濟社會發(fā)展轉(zhuǎn)型的歷史進(jìn)程。電子郵件是整個網(wǎng)間網(wǎng),以至所有其他網(wǎng)絡(luò)系統(tǒng)中直接面向人與人之間信息交流的系統(tǒng),它的數(shù)據(jù)發(fā)送方和接收方都是人,所以極大地滿足了大量存在的人與人通信的需求。本文在深入了解電子郵件管理的實際操作流程的基礎(chǔ)上,總結(jié)生活中常用的電子郵件功能,采用面向?qū)ο蟮木幊趟枷虢Y(jié)合當(dāng)前流行的Jmail技術(shù)設(shè)計并開發(fā)一套簡單、方便的客戶端電子郵件軟件,實現(xiàn)對電子郵件靈活的管

2、理。關(guān)鍵詞:電子郵件 客戶端 Jmail組件目 錄1 緒論11.1 研究背景11.2 研究現(xiàn)況11.3 系統(tǒng)概述21.4 本文工作32 開發(fā)環(huán)境的搭建32.1 運行平臺32.1.1 硬件平臺32.1.2 軟件平臺32.2 運行環(huán)境的配置32.2.1 POP3和STMP簡介32.2.2 安裝POP3/SMTP服務(wù)32.2.3 配置POP3/SMTP服務(wù)42.2.4 Jmail組件的注冊63 系統(tǒng)概要設(shè)計73.1 設(shè)計目標(biāo)73.2 功能模塊分析74 系統(tǒng)詳細(xì)設(shè)計94.1 重點模塊的詳細(xì)設(shè)計94.1.1 主界面模塊的詳細(xì)設(shè)計94.2.2 寫郵件模塊的詳細(xì)設(shè)計124.2.3 草稿箱模塊的詳細(xì)設(shè)計144

3、.2.4 收件箱模塊的詳細(xì)設(shè)計154.2.5 讀郵件模塊的詳細(xì)設(shè)計164.2.6 通信錄模塊的詳細(xì)設(shè)計174.2.7 使用MAPI函數(shù)實現(xiàn)發(fā)送功能的詳細(xì)設(shè)計184.2.8 使用Jmail組件實現(xiàn)接收功能的詳細(xì)設(shè)計235 測試分析256 總結(jié)30參 考 文 獻(xiàn)31Abstract32致 謝33仲愷農(nóng)業(yè)工程學(xué)院畢業(yè)論文(設(shè)計)成績評定表34II1 緒論1.1 研究背景隨著改革開放的深入發(fā)展,社會主義市場經(jīng)濟的建立,信息化時代的步伐不斷加快。根據(jù)最新公布的2006-2020國家信息化發(fā)展戰(zhàn)略,信息化是充分利用信息技術(shù),開發(fā)利用信息資源,促進(jìn)信息交流和知識共享,提高經(jīng)濟增長質(zhì)量,推動經(jīng)濟社會發(fā)展轉(zhuǎn)型的

4、歷史進(jìn)程 1。電子郵件是當(dāng)前信息化時代中不可缺少的重要通信手段。電子郵件是種用電子手段提供信息交換的通信方式,是Internet應(yīng)用最廣的服務(wù):通過網(wǎng)絡(luò)的電子郵件系統(tǒng),用戶可以用非常低廉的價格(不管發(fā)送到哪里,都只需負(fù)擔(dān)電話費和網(wǎng)費即可),以非??焖俚姆绞剑◣酌腌娭畠?nèi)可以發(fā)送到世界上任何你指定的目的地),與世界上任何一個角落的網(wǎng)絡(luò)用戶聯(lián)系,這些電子郵件可以是文字、圖像、聲音等各種方式。同時,用戶可以得到大量免費的新聞、專題郵件,并實現(xiàn)輕松的信息搜索。這是任何傳統(tǒng)的方式也無法相比的。正是由于電子郵件的使用簡易、投遞迅速、收費低廉,易于保存、全球暢通無阻,使得電子郵件被廣泛地應(yīng)用,它使人們的交流方

5、式得到了極大的改變。電子郵件綜合了電話通信和郵政信件的特點,它傳送信息的速度和電話一樣快,又能象信件一樣使收信者在接收端收到文字記錄。電子郵件系統(tǒng)又稱基于計算機的郵件報文系統(tǒng)。它承擔(dān)從郵件進(jìn)入系統(tǒng)到郵件到達(dá)目的地為止的全部處理過程。電子郵件不僅可利用電話網(wǎng)絡(luò),而且可利用任何通信網(wǎng)傳送。在利用電話網(wǎng)絡(luò)時,還可利用其非高峰期間傳送信息,這對于商業(yè)郵件具有特殊價值。由中央計算機和小型計算機控制的面向有限用戶的電子系統(tǒng)可以看作是一種計算機會議系統(tǒng)。最重要的是,電子郵件是整個網(wǎng)間網(wǎng),以至所有其他網(wǎng)絡(luò)系統(tǒng)中直接面向人與人之間信息交流的系統(tǒng),它的數(shù)據(jù)發(fā)送方和接收方都是人,所以極大地滿足了大量存在的人與人通信

6、的需求2。在高度信息化的今天,靈活和便捷地使用電子郵件,對提高工作效率、貫徹國家信息化發(fā)展戰(zhàn)略意義重大。1.2 研究現(xiàn)況經(jīng)過在網(wǎng)上的查找,發(fā)現(xiàn)有關(guān)于電子郵件的管理系統(tǒng)有:“Windows Live Mail Desktop”,它將桌面軟件的功能性與基于 Web 的電子郵件的靈活性結(jié)合在一起,輕松接收新聞組和 RSS 源,在脫機狀態(tài)下撰寫、刪除及管理電子郵件;即時添加關(guān)于任何信息的 Windows Live Spaces 網(wǎng)絡(luò)日志項 與 Windows Live Messenger 聯(lián)系人保持密切聯(lián)系,也可以創(chuàng)建并編輯照片電子郵件3;“KooMail” 它支持分割發(fā)送大郵件并且接收后自動合并,對

7、分割發(fā)送的郵件支持?jǐn)帱c續(xù)傳,其中郵件模板支持附件主題等,具有發(fā)送郵件加密功能使郵件更安全,實現(xiàn)郵件的過濾和規(guī)則功能;發(fā)送郵件無須SMTP服務(wù)器,具有多種郵件編碼支持各國語言字符集郵件徹底與亂碼告別;可以選擇先接收較大或較小的郵件從而優(yōu)化收郵件列表;能定時發(fā)送郵件4?!皦艋每燔嚕―reamMail)”它支持 SMTP、eSMTP、POP 3、Hotmail、Yahoo 等郵件協(xié)議,真正采用多線程高速收發(fā)郵件。附帶增強型遠(yuǎn)程管理,可以直接查看服務(wù)器上郵件的內(nèi)容、直接刪除郵件;具有郵件過濾器、黑名單及白名單等組合使用能有效對付垃圾郵件;能自動檢測破壞性郵件增強系統(tǒng)安全。另外,夢幻快車通過特有的破亂碼

8、技術(shù)輕松對付各種亂碼郵件。此外,它還集成了許多特色功能,比如:添加賬號時自動檢索 POP3/SMTP服務(wù)器、可以自定義動態(tài)滾動新聞、支持顯示發(fā)件人地址及插入郵件表情等等5?!癋oxmail”它是由原華中理工大學(xué)張小龍開發(fā)的一款優(yōu)秀的國產(chǎn)電子郵件客戶端軟件,2005年3月16日被“騰訊”收購。新的Foxmail具備強大的反垃圾郵件功能。它使用多種技術(shù)對郵件進(jìn)行判別,能夠準(zhǔn)確識別垃圾郵件與非垃圾郵件。垃圾郵件會被自動分撿到垃圾郵件箱中,有效地降低垃圾郵件對用戶干擾,最大限度地減少用戶因為處理垃圾郵件而浪費的時間。數(shù)字簽名和加密功能在Foxmail 5.0中得到支持,可以確保電子郵件的真實性和保密性

9、。 通過安全套接層(SSL)協(xié)議收發(fā)郵件使得在郵件接收和發(fā)送過程中,傳輸?shù)臄?shù)據(jù)都經(jīng)過嚴(yán)格的加密,有效防止黑客竊聽,保證數(shù)據(jù)安全。其他改進(jìn)包括:閱讀和發(fā)送國際郵件(支持Unicode)、地址簿同步、通過安全套接層(SSL)協(xié)議收發(fā)郵件、收取郵箱郵件;提高收發(fā)Hotmail、MSN電子郵件速度 支持名片(vCard)、以嵌入方式顯示附件圖片、增強本地郵箱郵件搜索功能等等6。1.3 系統(tǒng)概述一般的客戶端電子郵件軟件應(yīng)該有以下的功能:1) 編輯郵件(用戶進(jìn)行郵件編輯)。書寫新郵件2) 讀郵件(用戶在收件箱、發(fā)件箱、草稿箱和垃圾箱中查閱郵件信息)3) 發(fā)送郵件(發(fā)送已編輯的郵件或回復(fù)接收郵件)。發(fā)送郵件

10、4) 接收郵件(接收發(fā)送方的郵件)。收取郵件5) 添加聯(lián)系人(向通信錄添加聯(lián)系人信息)6) 編輯聯(lián)系人(編輯通信錄中聯(lián)系人的信息)7)刪除聯(lián)系人(刪除通信錄中聯(lián)系人信息)1.4 本文工作本文在深入了解電子郵件管理的實際操作流程的基礎(chǔ)上,總結(jié)生活中常用的電子郵件功能,采用面向?qū)ο蟮木幊趟枷朐O(shè)計并開發(fā)一套簡單、方便的客戶端電子郵件軟件,實現(xiàn)對電子郵件靈活的管理。2 開發(fā)環(huán)境的搭建2.1 運行平臺2.1.1 硬件平臺CPU:P4 1.8GHZ。內(nèi)存:256MB以上。2.1.2 軟件平臺操作系統(tǒng):Windows 2003。C+程序開發(fā)工具:VISUAL C+ 6.0分辨率:推薦使用1024×

11、768像素。2.2 運行環(huán)境的配置2.2.1 POP3和STMP簡介(1)POP3概述POP3是Post Office Protocol 3的簡稱,即郵局協(xié)議第3版。它規(guī)定了怎樣將個人計算機連接到Internet的郵件服務(wù)器和如何下載電子郵件。它是Internet電子郵件的第一個離線協(xié)議標(biāo)準(zhǔn)。簡單地說,POP3就是一個簡單而實用的郵件信息傳輸協(xié)議。(2)SMTP概述SMTP是Simple Mail Transfer Protocol的簡稱,即簡單郵件傳輸協(xié)議。SMTP是一種提供可靠且有效電子郵件傳輸?shù)膮f(xié)議。它是一組用于由源地址到目的地址發(fā)送郵件的規(guī)則,用來控制信件的中轉(zhuǎn)方式。它幫助每臺計算機在

12、發(fā)送或中轉(zhuǎn)信件時找到下一個目的地,通過SMTP協(xié)議所指定的服務(wù)器,將郵件發(fā)送到收件人的服務(wù)器上。2.2.2 安裝POP3/SMTP服務(wù)在Windows 2003下架設(shè)郵件服務(wù)器可以用系統(tǒng)自帶的POP3及SMTP服務(wù)建立。同其他服務(wù)一樣,默認(rèn)情況下這兩個服務(wù)是沒有安裝的,需要手工進(jìn)行添加。安裝的步驟如下:第一步:安裝POP3服務(wù)組件。以系統(tǒng)管理員身份登錄Windows 2003系統(tǒng),選擇【控制面板】|【添加或刪除程序】|【添加/刪除Windows組件】命令,在彈出的【W(wǎng)indows組件向?qū)А繉υ捒蛑羞x中【電子郵件服務(wù)】選項。單擊【詳細(xì)信息】按鈕,可以看到該選項包括兩部分內(nèi)容,分別是“POP3服務(wù)

13、”和“POP3服務(wù)Web管理”。為方便用戶以遠(yuǎn)程Web方式管理郵件服務(wù)器,建議選中【POP3服務(wù)Web管理】命令,如圖2.1所示。 圖2.1 選中【POP3服務(wù)Web管理】第二步:安裝SMTP服務(wù)組件。選中【應(yīng)用程序服務(wù)器】選項,單擊【詳細(xì)信息】按鈕。在【Internet信息服務(wù)(IIS)】選項中查看詳細(xì)信息,選中SMTP Service選項,單擊【確定】按鈕。此外,如果需要對郵件服務(wù)器進(jìn)行遠(yuǎn)程Web管理,一定要選中【萬維網(wǎng)服務(wù)】選項中的【遠(yuǎn)程管理(HTML)】命令組件。完成以上設(shè)置后,單擊【下一步】按鈕,系統(tǒng)就開始安裝配置POP3和SMTP服務(wù)了。2.2.3 配置POP3/SMTP服務(wù)配置P

14、OP3/SMTP服務(wù)器步驟如下:第一步:創(chuàng)建郵件域。選擇【開始】|【管理工具】|【POP3服務(wù)】命令,彈出【POP3服務(wù)控制臺】對話框。選中左欄中的POP3服務(wù)后,單擊右欄中的【新域】選項,彈出【添加域】對話框。在【域名】文本框中輸入郵件服務(wù)器的域名,也就是郵件地址“”后面的部分,例如,然后單擊【確定】按鈕,如圖2.2所示。圖2.2   創(chuàng)建新域第二步:創(chuàng)建系統(tǒng)登陸帳戶。選中新建的域,在右欄中選擇【添加郵箱】命令,彈出【添加郵箱】對話框,在【郵箱名】文本欄中輸入郵件用戶名,然后設(shè)置用戶密碼,最后單擊【確定】按鈕,完成系統(tǒng)登陸帳戶的創(chuàng)建,如圖2.3所示。圖2.3 &

15、#160; 創(chuàng)建郵箱第三步:配置SMTP服務(wù)器。選擇【開始】|【程序】|【管理工具】|【Internet信息服務(wù)管理器】選項。在【IIS管理器】對話框中右擊【默認(rèn)SMTP虛擬服務(wù)器】選項,在彈出的菜單中選擇【屬性】選項,進(jìn)入【默認(rèn)SMTP虛擬服務(wù)器屬性】對話框,切換到【常規(guī)】選項卡,在【IP地址】下拉列表框中選擇郵件服務(wù)器的IP地址即可。單擊【確定】按鈕,這樣一個簡單的郵件服務(wù)器就架設(shè)完成了,如圖2.4所示。完成以上設(shè)置后,就可以使用郵件客戶端軟件連接郵件服務(wù)器進(jìn)行郵件收發(fā)工作。只要在POP3和SMTP處輸入郵件服務(wù)器的IP地址即可。注意:這個時候smtp access里面設(shè)置的是匿名訪問,此

16、時任何用戶都可以利用此mail服務(wù)器發(fā)郵件。圖2.4   設(shè)置SMTP虛擬服務(wù)器屬性第四步:設(shè)置在SMTP虛擬服務(wù)器中傳入郵件信息的存放位置。SMTP虛擬服務(wù)器有一個本地默認(rèn)域,默認(rèn)指定的傳入郵件信息都放置在C:InetpubmailrootDrop文件夾中,可以根據(jù)實際情況更改Drop文件夾的位置,如圖2.5。圖2.5:設(shè)置傳入郵件信息的存放位置2.2.4 Jmail組件的注冊Jmail組件是一個功能強大的郵件發(fā)送組件,使用該組件可以方便地實現(xiàn)郵件的發(fā)送和接收功能,而且Jmail組件具有通用性,很多語言都可以使用。但是在使用之前,首先要注冊該組件。注冊步驟如下:第一步:從

17、網(wǎng)絡(luò)上下載的Jmail.dll文件。第二步:把Jmail.dll文件復(fù)制到 C:WINDOWSsystem32目錄下。第三步:運行注冊命令。在【運行】中輸入regsvr32 C:WINDOWSsystem32Jmail.dll語句,單擊確定按鈕,當(dāng)出現(xiàn)如圖2.6所示的提示對話框,則完成該組件的注冊。圖2.6 Jmail.dll注冊成功3 系統(tǒng)概要設(shè)計3.1 設(shè)計目標(biāo)(1)系統(tǒng)架構(gòu)清晰、界面友好美觀、操作簡便、實用性強;(2)提供靈活、方便、快捷、準(zhǔn)確的電子郵件管理;3.2 功能模塊分析根據(jù)系統(tǒng)的用例圖和需求分析,可以把系統(tǒng)劃分為以下幾個功能模塊:(1) 登陸模塊:通過電子郵箱帳戶和密碼進(jìn)行身份

18、驗證,正確輸入電子郵箱帳戶和密碼后,進(jìn)入系統(tǒng)主界面進(jìn)行操作。(2) 主界面模塊:整個軟件的導(dǎo)航模塊,可以單擊該界面左側(cè)的按鈕進(jìn)入相應(yīng)的信箱。在該界面右側(cè)顯示了各個界面的郵件信息,包括郵件總數(shù)和新郵件數(shù)。(3) 寫郵件模塊:用戶可以進(jìn)行郵件編輯、發(fā)送,單擊“選擇收件人”按扭,可以向收件人文本框中插入地址;通過“添加郵件”和“刪除郵件”按扭來設(shè)置是否發(fā)送附件;編輯好的郵件,單擊工具欄中的“發(fā)送”按扭,可以發(fā)送郵件。(4) 讀郵件模塊:用戶在收件箱、發(fā)件箱、草稿箱和垃圾箱中按下工具欄中的“查看”按鈕后,會打開讀郵件模塊,用戶可以查看當(dāng)前選擇的郵件信息,并且根據(jù)需要進(jìn)行回復(fù)或轉(zhuǎn)發(fā)操作。(5) 發(fā)信箱模

19、塊:保存用戶已發(fā)送的郵件。用戶可以在發(fā)信箱中查看郵件信息,并可以進(jìn)行再發(fā)送。在工具欄設(shè)有查看按鈕,刪除按鈕,清空按鈕和排序按鈕。用戶可以在工具欄選擇“排序”下拉按鈕的菜單項選擇排序字段。用戶單擊“查看”,可以查看當(dāng)前選擇的電子郵件。(6) 草稿箱模塊:主要用來保存用戶編輯好但沒有發(fā)送的郵件。用戶可以在草稿箱中查看郵件信息,并可以進(jìn)行發(fā)送。在工具欄設(shè)有查看按鈕,刪除按鈕,清空按鈕和排序按鈕。用戶可以在工具欄選擇“排序”下拉按鈕的菜單項選擇排序字段。用戶單擊“查看”,可以查看當(dāng)前選擇的電子郵件。(7) 垃圾箱模塊:主要用來保存從收件箱中刪除的郵件,用戶可以在垃圾箱中查看郵件信息,并可以進(jìn)行發(fā)送。在

20、工具欄設(shè)有查看按鈕,刪除按鈕,清空按鈕,排序按鈕和分類按鈕。用戶可以在工具欄選擇“排序”下拉按鈕的菜單項選擇排序字段,也可以通過“分類”按鈕根據(jù)主題篩選郵件。用戶單擊“查看”,可以查看當(dāng)前選擇的電子郵件。(8) 收件箱模塊:主要用來管理用戶接收到的電子郵件。在工具欄設(shè)有查看按鈕,刷新按鈕,刪除按鈕,清空按鈕,排序按鈕和分類按鈕。用戶可以在工具欄選擇“排序”下拉按鈕的菜單項選擇排序字段,也可以通過“分類”按鈕根據(jù)主題篩選郵件。用戶單擊工具欄上的“刷新”按鈕,獲取新的郵件信息,并寫入數(shù)據(jù)庫中。用戶單擊“查看”,可以查看當(dāng)前選擇的電子郵件。(9) 通信錄模塊:用于管理用戶的常用聯(lián)系人。用戶可以設(shè)置一

21、些分組,然后將常用聯(lián)系人添加到分組中,這樣在查找聯(lián)系人時就可以根據(jù)分組進(jìn)行快速查找了。系統(tǒng)的功能模塊圖如下:發(fā)送郵件客戶端電子郵件軟件垃圾箱草稿箱寫郵件發(fā)件箱存入草稿箱選擇聯(lián)系人添加附件刪除附件查看郵件刪除郵件清空發(fā)件箱郵件箱排序查看郵件刪除郵件清空草稿箱郵件箱排序查看郵件刪除郵件清空垃圾箱郵件箱排序郵件分類收件箱查看郵件接收新郵件刪除郵件情況收件箱郵件排序郵件分類讀郵件回復(fù)郵件轉(zhuǎn)發(fā)郵件保存聯(lián)系人另存為附件通信錄添加郵件添加聯(lián)系人編輯聯(lián)系人刪除聯(lián)系人分組查看圖3.2 系統(tǒng)功能模塊圖4 系統(tǒng)詳細(xì)設(shè)計4.1 重點模塊的詳細(xì)設(shè)計4.1.1 主界面模塊的詳細(xì)設(shè)計本模塊的界面是 1個基于對話框資源。在該

22、對話框中添加控件,包括6個圖片控件和9個按鈕控件,并向工程導(dǎo)入8個位圖資源,修改其位圖ID。控件的屬性如表1。表1 主界面控件設(shè)置表控件ID控件屬性關(guān)聯(lián)變量IDC_STATICRECEIVEtype: Bitmap、Image: IDB_RECEIVE無IDC_STATICSENDtype: Bitmap、Image:IDB_STATICSEND無IDC_STATICDRAFTtype: Bitmap、Image:IDB_STATICDRAFT無IDC_STATICLITTERtype: Bitmap、Image:IDB_STATICLITTER無IDC_STATICADDRESStype:

23、Bitmap、Image:IDB_STATICADDRESS無IDC_FRAMEtype: Frame、Color: BlackCbuttonHot m_ReceiveIDC_BUTRECEIVE勾選Owenr drawCstactic m_FrameIDC_BUTWRITE勾選Owenr drawCbuttonHot m_ WriteIDC_RECEIVEBOX勾選Owenr drawCbuttonHot m_ ReceiveboxIDC_ SENDBOX勾選Owenr drawCbuttonHot m_SendboxIDC_ DRAFTBOX勾選Owenr drawCbuttonHot m

24、_ DraftboxIDC_ LITTERBOX勾選Owenr drawCbuttonHot m_ LitterboxIDC_ CONTACT勾選Owenr drawCbuttonHot m_ ContactIDC_ BUTMIN勾選BitmapCbutton m_ MinIDC_ BUTCLOSE勾選BitmapCbutton m_Close本模塊的主要任務(wù)是當(dāng)用戶登錄后,提供不同按鈕進(jìn)入不同的功能模塊實現(xiàn)具體的操作,并在信息區(qū)域顯示當(dāng)前登陸的郵箱內(nèi)郵件及新郵件的數(shù)量。主界面通過在頭文件聲明各個子窗體的指針與其他的模塊建立連接,這些指針包括CMailCountDlg * MailCountD

25、lg;/郵件統(tǒng)計窗體、CReceiveBoxDlg*ReceiveBoxDlg;/收件箱、CSendBoxDlg * SendBoxDlg;/發(fā)件箱、CDraftBoxDlg * DraftBoxDlg;/草稿箱、CLitterBoxDlg * LitterBoxDlg;/垃圾箱、CWriteMailDlg * WriteMailDlg;/寫郵件、CReadMailDlg * ReadMailDlg;/讀郵件、CAddressDlg * AddressDlg;/通信錄、CStatusBar m_StatusBar;/狀態(tài)欄。主界面的下方設(shè)置有狀態(tài)欄,顯示當(dāng)前登陸的郵箱及當(dāng)前的日期和時間,為用戶

26、在編輯郵件時提供一些簡要的信息。主界面的右上方設(shè)置了最小化按鈕和關(guān)閉按鈕,用戶能通過主界面的這些按鈕退出或?qū)⒊绦蜃钚』?chuàng)建狀態(tài)欄和設(shè)置最小化按鈕和關(guān)閉按鈕的顯示圖片,均在主界面的OnInitDialog方法中完成。其中,主界面的OnCtlColor函數(shù),處理WM_CTLCOLOR消息,用于繪制背景;OnButmin函數(shù)處理WM_SYSCOMMAND消息,用于處理“最小化”按鈕的單擊事件。當(dāng)用戶點擊主界面中的功能按鈕進(jìn)入相應(yīng)的模塊時,原來用于顯示郵件及新郵件數(shù)量等的信息區(qū)域,會相應(yīng)地改變。用戶能通過該區(qū)域的變化,直觀地判斷當(dāng)前系統(tǒng)所處的模塊。在主界面對話框中,添加CreateDialogBox

27、函數(shù)用于創(chuàng)建用戶要打開的子窗體,添加DestroyWindowBox函數(shù)用于銷毀當(dāng)前打開的子窗口,此外在主界面的PreTranslateMessage虛方法中,屏蔽<ESC>鍵關(guān)閉窗體的功能,并設(shè)置無標(biāo)題窗體的拖動,從而實現(xiàn)信息區(qū)域的變化。本系統(tǒng)的按鈕具有熱點效果,實現(xiàn)步驟如下:(1)以CButton類為基類,派生一個CbuttonHot類(2)重載DrawItem方法,在該方法中繪制按鈕控件代碼如下:CDC dc; /通過創(chuàng)建一個CDC類的對象,聲明設(shè)備上下文dc.Attach(lpDrawItemStruct->hDC);/獲得繪制按鈕設(shè)備上下文UINT state =

28、lpDrawItemStruct->itemState;/獲取狀態(tài)CRect rect;/聲明區(qū)域?qū)ο驡etClientRect(rect);/獲得編輯框客戶區(qū)域CString text;GetWindowText(text);/獲得按鈕文本if(state & ODS_DISABLED)/如果按鈕不可用dc.SetBkMode(TRANSPARENT);/設(shè)置背景透明dc.SetTextColor(RGB(0,0,0);/設(shè)置文本顏色dc.DrawText(text,&rect,DT_CENTER);/繪制文本else if(m_IsInRect=TRUE) /如果鼠標(biāo)

29、在按鈕上dc.SetBkMode(TRANSPARENT);/設(shè)置背景顏色dc.SetTextColor(RGB(255,0,0);/設(shè)置文本顏色dc.DrawText(text,&rect,DT_CENTER);/繪制文本else/默認(rèn)情況下dc.SetBkMode(TRANSPARENT);/設(shè)置背景透明dc.SetTextColor(RGB(0,0,0);/設(shè)置文本顏色dc.DrawText(text,&rect,DT_CENTER);/繪制文本(3)重載PreSubclassWindow方法,在該方法中設(shè)置定時器代碼如下:SetTimer(1,10,NULL); /設(shè)置

30、定時器CButton:PreSubclassWindow();(4)在CbuttonHot類的OnTimer方法中,設(shè)置在定時器中判斷鼠標(biāo)是否移動到按鈕上代碼如下:CPoint point;/聲明Cpoint變量GetCursorPos(&point);/獲得鼠標(biāo)位置CRect rcWnd;/聲明區(qū)域?qū)ο驡etWindowRect(&rcWnd);/獲得按鈕區(qū)域if(rcWnd.PtInRect(point)/判斷鼠標(biāo)是否在按鈕上if(m_IsInRect = TRUE)/判斷鼠標(biāo)是否一直在按鈕上goto END;/跳轉(zhuǎn)到標(biāo)記else/鼠標(biāo)移動到按鈕上m_IsInRect =

31、TRUE;/設(shè)置m_IsInRect變量值Invalidate();/重繪按鈕else/不在按鈕區(qū)域內(nèi)if(m_IsInRect = FALSE)/判斷鼠標(biāo)一直在按鈕外goto END;/跳轉(zhuǎn)到標(biāo)記else/鼠標(biāo)移動到按鈕外Invalidate();/重繪按鈕m_IsInRect = FALSE;/設(shè)置m_IsInRect變量值END:CButton:OnTimer(nIDEvent);/設(shè)置標(biāo)記,調(diào)用基類方法4.2.2 寫郵件模塊的詳細(xì)設(shè)計本模塊的界面是1個基于對話框資源。在該對話框中添加控件,包括4個文本框控件、1個列表控件和3個按鈕控件??丶膶傩栽O(shè)置如表2。表2 寫郵件界面控件設(shè)置表控

32、件ID控件屬性關(guān)聯(lián)變量IDC_EDIT1勾選Read-onlyCsting m_SendManIDC_ EDIT2無Csting m_ReceiveManIDC_ EDIT3無Csting m_MotifIDC_ EDIT4Multiline、Vertical scoll、Auto Vscroll、Want returnCsting m_TextIDC_LIST1勾選Vertical scrollClistBox m_AnnexIDC_BUTSELECT勾選Owenr drawCbuttonHot m_SelectIDC_BUTADD勾選Owenr drawCbuttonHot m_AddID

33、C_ BUTDEL勾選Owenr drawCbuttonHot m_Del本模塊的任務(wù)是讓用戶點擊“寫信”功能按鈕后進(jìn)入寫郵件模塊,用戶可以在該模塊內(nèi)編輯郵件,并根據(jù)工具欄的按鈕進(jìn)行發(fā)送、存草稿、取消等操作。在郵件編輯時,寫郵件模塊所提供的“選擇收件人”按鍵,由對話框的OnButselect方法處理該按鍵的單擊事件,當(dāng)按鈕按下后彈出“聯(lián)系人列表”對話框,在“聯(lián)系人列表”對話框中可以通過條件查詢,將查詢結(jié)構(gòu)插入到寫郵件模塊的“收件人”文本框中。對話框的OnButadd方法處理“添加附件”按鈕的單擊事件,當(dāng)按鈕按下后彈出“附件列表”對話框,用戶在“附件列表”對話框中選擇附件的路徑。對話框的OnBu

34、tdel方法處理“刪除附件”按鈕的單擊事件,用戶附件文本框中,選擇需要刪除的附件,單擊"刪除附件"按鈕即可刪除選中的附件。寫郵件模塊中所設(shè)置的工具欄提供“發(fā)送”、“存草稿”和“取消”按鈕。用戶在編輯郵件后,選擇所需的工具欄按鈕執(zhí)行相應(yīng)的操作。工具欄在對話框的OnInitDialog方法中創(chuàng)建。寫郵件對話框的OnSend方法處理工具欄“發(fā)送”按鈕的單擊事件,該事件調(diào)用線程函數(shù)發(fā)送郵件,并將發(fā)送的郵件信息寫入到發(fā)件箱,前提在主界面的.CPP文件中聲明MAPI函數(shù)原型,并定義線程函數(shù)ThreadProc,在該線程函數(shù)中執(zhí)行MAPI函數(shù)的代碼,實現(xiàn)發(fā)送郵件的功能,執(zhí)行該線程函數(shù)后會

35、返回一個執(zhí)行成功或執(zhí)行失敗的值,用來判讀郵件是否發(fā)送成功。寫郵件對話框的OnSave方法處理工具欄中“存草稿”按鈕的單擊事件,當(dāng)按鈕按下后將當(dāng)前編輯的郵件信息保存到草稿箱中。對話框的OnCan方法處理工具欄中“取消”按鈕的單擊事件,當(dāng)按鈕按下后清空當(dāng)前編輯的郵件信息。線程函數(shù)ThreadProc的說明如下:線程函數(shù)ThreadProc,是一個應(yīng)用程序定義的函數(shù),可作為起始地址的線程。指定這個地址時,調(diào)用CreateThread或CreateRemoteThread功能。ThreadProc是一個占位符的應(yīng)用定義的函數(shù)名稱。線程函數(shù)ThreadProc的函數(shù)原型如下:DWORD WINAPI T

36、hreadProc( LPVOID lpParameter /線程數(shù)據(jù));其中參數(shù)lpParameter用于接收CreateThread或CreateRemoteThread功能傳遞給函數(shù)的線程數(shù)據(jù)。執(zhí)行線程函數(shù)ThreadProc后,將返回一個布爾型的值表明函數(shù)執(zhí)行是否成功。系統(tǒng)依靠該返回值,判斷提示消息“發(fā)送成功”或“操作失敗”。4.2.3 草稿箱模塊的詳細(xì)設(shè)計本模塊界面的是1個基于對話框資源。在該對話框中添加控件,包括1個文本框控件、1個列表視圖控件、32個復(fù)選框控件和5個按鈕控件??丶膶傩栽O(shè)置如表3。表3 草稿箱界面控件設(shè)置表控件ID控件屬性關(guān)聯(lián)變量IDC_EDIT1無int m_P

37、ageIDC_LIST1View: Report勾選No sort headerClistCtrl m_GridIDC_CURRENTLY勾選Owenr draw、DisabledCbuttonHot m_CurrentlyIDC_BUTPEVIOUS勾選Owenr drawCbuttonHot m_PreviousIDC_ BUTNEXT勾選Owenr drawCbuttonHot m_NextIDC_ SUM勾選Owenr draw、DisabledCbuttonHot m_SumIDC_ BUTGO勾選Owenr drawCbuttonHot m_Go本模塊的任務(wù)是管理用戶在寫郵件模塊中

38、單擊“存草稿”按鈕后所保存的郵件。本模塊需要在頭文件中聲明以下的變量,包括:CToolBar m_ToolBar;/工具欄對象、CReBar m_Rebar;/Rebar條,這兩個變量用于創(chuàng)建帶背景的工具欄。還有CCustomMenu m_MenuOrder;/排序菜單、CString m_Sql;/記錄查詢語句、int m_Num;/記錄分頁碼、Cstring m_SortField;/記錄排序字段,這三個變量用于排序下拉按鈕。本模塊在工具欄中提供了“查看”按鈕、“刪除”按鈕、“清空”按鈕和“排序”按鈕。用戶在郵件的列表視圖中選擇所需的郵件,通過工具欄選擇功能按鈕執(zhí)行相應(yīng)的操作。工具欄在對話

39、框的OnInitDialog方法中創(chuàng)建,并設(shè)置工具欄下拉按鈕,設(shè)置列表視圖控件的擴展風(fēng),向列表中插入數(shù)據(jù),和計算分頁的頁碼。工具欄中“查看”按鈕的單擊事件由對話框的中OnLook方法處理,單擊“查看”按鈕,彈出寫郵件模塊,在寫郵件模塊中顯示當(dāng)前郵件的具體信息。工具欄中“刪除”按鈕的單擊事件由對話框的OnDelete方法處理,當(dāng)用戶在郵件列表圖中選定需要刪除的郵件,單擊“刪除”按鈕即可。工具欄中“清除”按鈕的單擊事件由對話框的OnClear方法處理,單擊“清除”按鈕將刪除草稿箱內(nèi)所有的郵件。工具欄中的“排序”按鈕是下拉式按鈕,下拉后分別有“按郵箱”、“按主題”和“按時間” 的選項。“按郵箱”排序

40、的單擊事件由對話框的中OnMenureceive方法處理,該事件中根據(jù)收件人信息來排列郵件?!鞍粗黝}”排序的單擊事件由對話框的中OnMenumotif方法處理,該事件中根據(jù)郵件的主題信息來排列郵件?!鞍磿r間”排序的單擊事件由對話框的中OnMenutime方法處理,該事件中根據(jù)郵件的修改時間信息來排列郵件。此外對話框還要添加AddToGrid函數(shù),將符合條件的郵件記錄都插入到列表中。郵件的列表視圖設(shè)有“上一頁”、“下一頁”和“GO”按鈕,用戶能通過這些按鈕查看列表中的所有郵件?!癎O”按鈕的單擊事件由對話框的中OnButgo方法處理,當(dāng)用戶在文本框中輸入要跳轉(zhuǎn)的頁碼后,單擊GO按鈕,郵件列表視圖

41、跳到文本框中輸入頁。“上一頁” 按鈕的單擊事件由對話框的中OnButprevious方法處理,如果當(dāng)前郵件列表圖為非第一頁,單擊“上一頁” 按鈕,郵件列表視圖將轉(zhuǎn)到當(dāng)前頁的前一頁?!跋乱豁摗卑粹o的單擊事件由對話框的中OnButnext方法處理,如果當(dāng)前郵件列表圖為非最后以頁,單擊“下一頁” 按鈕,郵件列表視圖將轉(zhuǎn)到當(dāng)前頁的后一頁。4.2.4 收件箱模塊的詳細(xì)設(shè)計本模塊的是1個基于對話框資源。在該對話框中添加控件,包括1個文本框控件、1個列表視圖控件、31個復(fù)選框控件和5個按鈕控件??丶膶傩栽O(shè)置如表4。表4 收件箱界面控件設(shè)置表控件ID控件屬性關(guān)聯(lián)變量IDC_EDIT1無int m_PageI

42、DC_LIST1無View: Report勾選No sort headerClistCtrl m_GridIDC_CURRENTLY勾選Owenr draw、DisabledCbuttonHot m_CurrentlyIDC_BUTPEVIOUS勾選Owenr drawCbuttonHot m_PreviousIDC_ BUTNEXT勾選Owenr drawCbuttonHot m_NextIDC_ SUM勾選Owenr draw、DisabledCbuttonHot m_SumIDC_ BUTGO勾選Owenr drawCbuttonHot m_Go本模塊的任務(wù)管理用戶接收到的電子郵件。本模

43、塊在工具欄中提供了“查看”按鈕、“刪除”按鈕、“清空”按鈕、“排序”按鈕和“分類” 按鈕,和草稿箱模塊的工具欄相比增加了“分類”按鈕和“刷新”按鈕。用戶在登陸郵件箱前,系統(tǒng)提供了“添加分類”按鈕。默認(rèn)的情況下,系統(tǒng)提供了文件和郵件兩個分類,用戶也可以根據(jù)自己的需要增加分類標(biāo)識。分類主要是對接收到的郵件進(jìn)行分類管理。要想對郵件進(jìn)行分類,必須讓發(fā)送者了解您的分類格式,當(dāng)對方給您發(fā)送郵件時,在主題后面加上“TO:”+分類名稱即可,例如:“TO:文件”,則接收郵件后程序自動將該封郵件分到“文件”類中,當(dāng)選擇“分類”菜單中的“文件”時,自動會顯示在郵件列表視圖中。本模塊的工具欄在對話框的OnInitDi

44、alog方法中創(chuàng)建,并設(shè)置工具欄下拉按鈕,設(shè)置列表視圖控件的擴展風(fēng),向列表中插入數(shù)據(jù),和計算分頁的頁碼。工具欄中“刷新”按鈕的單擊事件由對話框的OnRefurbish方法處理,當(dāng)用戶按下“刷新”按鈕后,將讀取新郵件信息,并將新郵件標(biāo)記為未讀郵件。此外添加AddToGrid函數(shù),將數(shù)據(jù)庫中已收到的郵件信息添加到收件箱列表中,并判斷是否為未讀郵件,如果是未讀郵件,則在發(fā)件人后追加“(未讀)”標(biāo)記。IsReceiveMail函數(shù),用于判斷是否為新郵件。IsReceiveMail函數(shù)的代碼如下:BOOL CReceiveBoxDlg:IsReceiveMail(CString sql)BOOL res

45、ult;ADO m_Ado;m_Ado.OnInitADOConn(); /連接數(shù)據(jù)庫m_Ado.m_pRecordset = m_Ado.OpenRecordset(sql);/打開記錄集if(!m_Ado.m_pRecordset->adoEOF) /如果是新郵件 result = FALSE; /設(shè)置返回值FALSEelse /郵件不存在 result = TRUE; /設(shè)置返回值TRUEm_Ado.CloseRecordset(); /關(guān)閉記錄集m_Ado.CloseConn(); /斷開數(shù)據(jù)庫連接return result;4.2.5 讀郵件模塊的詳細(xì)設(shè)計本模塊的界面是1個基于

46、對話框資源。在該對話框中添加控件,包括5個文本框控件、1個列表視圖控件、2個按鈕控件??丶膶傩栽O(shè)置如表5。表5 讀郵件界面控件設(shè)置表控件ID控件屬性關(guān)聯(lián)變量IDC_EDIT1無Csting m_SendManIDC_ EDIT2無Csting m_Motif IDC_ EDIT3勾選Read-onlyCsting m_ReceiveManIDC_ EDIT4勾選Read-onlyCsting m_RtimeIDC_ EDIT5Multiline、Vertical scoll、Auto Vscroll、Want returnCsting m_TextIDC_LIST1勾選Vertical sc

47、rollClistBox m_AnnexIDC_LINKMAN勾選Owenr drawCbuttonHot m_LinkmanIDC_BUTSAVE勾選Owenr drawCbuttonHot m_Save本模塊的任務(wù)是查看用戶在收收件箱和垃圾箱選定并單擊“查看”按鈕的郵件信息并且根據(jù)需要進(jìn)行回復(fù)或轉(zhuǎn)發(fā)操作。本模塊在工具欄中提供了“回復(fù)”按鈕、“轉(zhuǎn)發(fā)”按鈕。本模塊的工具欄在對話框的OnInitDialog方法中創(chuàng)建。工具欄中“回復(fù)”按鈕的單擊事件由對話框的中OnRestore方法處理,當(dāng)用戶選擇回復(fù)郵件時,將打開寫郵件模塊,并將當(dāng)前郵件的發(fā)件人寫入到收件人文本框中。工具欄中“轉(zhuǎn)發(fā)”按鈕的單擊事

48、件由對話框的中OnTransmit方法處理,當(dāng)用戶選擇轉(zhuǎn)發(fā)郵件時,將打開寫郵件模塊,并將當(dāng)前郵件的信息寫入到相應(yīng)的位置。在本模塊中,閱讀郵件信息時提供了“保存聯(lián)系人”按鈕和“另存為附件”按鈕。其中“保存聯(lián)系人”按鈕的單擊事件由對話框的中OnLinkman方法處理,當(dāng)用戶單擊該按鈕,系統(tǒng)會保存發(fā)件人的信息到通信錄模塊。工具欄中“附件另存為”按鈕的單擊事件由對話框的中OnButsave方法處理,當(dāng)用戶按下此按鈕后,彈出“另存為”對話框,在用戶選擇存儲附件的路徑后保存附件。4.2.6 通信錄模塊的詳細(xì)設(shè)計本模塊的任務(wù)是管理用戶的常用聯(lián)系人,該模塊工具欄中的“添加”按鈕通過通信錄的兩個子窗體“添加分組

49、”窗體和“添加聯(lián)系人”窗體的組合實現(xiàn)的添加聯(lián)系人的功能。添加聯(lián)系人窗體界面是1個基于對話框資源。在該對話框中添加控件,包括4個文本框控件、1個組合框控件和4個按鈕控件??丶膶傩栽O(shè)置如表6。表6 通訊錄界面控件設(shè)置表控件ID控件屬性關(guān)聯(lián)變量IDC_EDIT1無Csting m_ManIDC_ EDIT2無Csting m_Mail IDC_ EDIT3無Csting m_PhoneIDC_ EDIT4無Csting m_AddressIDC_ COMBO1無CbuttonBox m_ComboIDC_LINKMAN勾選Owenr draw、DissabledCbuttonHot m_Linkm

50、anIDC_ BUTGROUP勾選Owenr drawClistBox m_Group添加聯(lián)系人窗體必須在頭文件中聲明所需變量,分別是m_Name:窗體標(biāo)題和m_IsAdd:添加標(biāo)記。在窗體的OnInitDialog方法中判斷當(dāng)前添加聯(lián)系人還編輯聯(lián)系人,從而設(shè)置窗體標(biāo)題。添加AddToCombo函數(shù),用于將數(shù)據(jù)庫中的聯(lián)系人分組數(shù)據(jù)插入到分組組合框中。在窗體的OnButgroup中,設(shè)置“添加分組”按鈕的單擊事件,在該函數(shù)中調(diào)用“添加分組”窗體添加新的分組,并將新的分組插入到組合框中。在窗體的OnButok中,設(shè)置“確定”按鈕的單擊事件,在該函數(shù)中將用戶設(shè)置的聯(lián)系人信息保存到數(shù)據(jù)庫中。添加分組窗

51、體界面是1個基于對話框資源。在該對話框中添加控件1個文本框控件、1個列表視圖控件、2個靜態(tài)文本控件和2個按鈕控件。控件的屬性設(shè)置如表7。表7 分組窗體界面控件設(shè)置表控件ID控件屬性關(guān)聯(lián)變量IDC_ LIST1無View: Small IconClistCtrl m_GridIDC_ EDIT1無CEdit m_Name IDC_ BUTOK勾選Owenr drawCbuttonHot m_OKIDC_BUTCANCLE勾選Owenr drawCbuttonHot m_Cancle添加聯(lián)系人窗體在OnInitDialog方法中創(chuàng)建圖像列表,并使用圖像列表控件關(guān)聯(lián)圖像列表。在該窗體的OnButok

52、方法中,設(shè)置“確定”按鈕的單擊事件,在該事件的處理函數(shù)中將用戶設(shè)置的分組名稱插入到數(shù)據(jù)庫中。本模塊中的工具欄除了提供“添加”按鈕外,還有“編輯”按鈕、“刪除”按鈕和“分組”按鈕,其中分組按鈕是根據(jù)“添加分組窗體”提供的信息來排列聯(lián)系人列表,默認(rèn)的情況下通過“同事”和“朋友”的分組。當(dāng)用戶單擊“編輯”按鈕后,彈出編輯對話框,用戶在該對話框內(nèi)修改聯(lián)系人的信息。4.2.7 使用MAPI函數(shù)實現(xiàn)發(fā)送功能的詳細(xì)設(shè)計本系統(tǒng)使用MAPI函數(shù)發(fā)送電子郵件,實現(xiàn)的步驟如下:(1) 聲明MAPI函數(shù)原型在主面界窗體的頭文件引入mapi.頭文件,然后在主面界窗體聲明MAPI函數(shù)原型。在主界面源文件中聲明MAPI函數(shù)

53、原型。代碼如下:ULONG (PASCAL *lpfnMAPISendMail) (LHANDLE lhSession, ULONG ulUIParam, lpMapiMessage lpMessage, FLAGS flFlags, ULONG ulReserved); ULONG (FAR PASCAL *lpfnMAPILogon)(ULONG ulUIParam, LPSTR lpszProfileName, LPSTR lpszPassword, FLAGS flFlags, ULONG ulReserved, LPLHANDLE lplhSession); ULONG (FAR P

54、ASCAL *lpfnMAPILogoff)(LHANDLE lhSession, ULONG ulUIParam, FLAGS flFlags, ULONG ulReserved); ULONG (FAR PASCAL *lpfnMAPIFreeBuffer)(LPVOID lpBuffer);(2)使用MAPI發(fā)送郵件使用MAPI發(fā)送郵件時,首先在主界面對話框的線程函數(shù)ThreadProc裝載MAPI32.DLL動態(tài)鏈接庫,用lpfnMAPILogon函數(shù)開啟一個對話,然后設(shè)置MapiMessage結(jié)構(gòu)指針,通過MapiMessage結(jié)構(gòu)指針設(shè)置發(fā)送郵件信息,然后調(diào)用lpfnMAPISendMail函數(shù)發(fā)送郵件。在發(fā)送前需要定義一個MapFileDesc結(jié)構(gòu)數(shù)組。該數(shù)組用來保存附件信息,數(shù)組中的每一個元素都對應(yīng)一個附件信息。在設(shè)置MapFileDesc結(jié)構(gòu)時,將MapFileDesc結(jié)構(gòu)數(shù)組賦值給MapiMessage結(jié)構(gòu)的lpFile成員。代碼如下:HMODULE result = LoadLibrary("mapi32.dll"); /加載動態(tài)庫/獲取函數(shù)指針(FARPROC&)lp

溫馨提示

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

最新文檔

評論

0/150

提交評論