MFC實(shí)驗(yàn)六 文檔視圖和單文檔界面

MFC實(shí)驗(yàn)六 文檔視圖和單文檔界面

ID:38271899

大?。?86.75 KB

頁數(shù):12頁

時(shí)間:2019-06-07

MFC實(shí)驗(yàn)六 文檔視圖和單文檔界面_第1頁
MFC實(shí)驗(yàn)六 文檔視圖和單文檔界面_第2頁
MFC實(shí)驗(yàn)六 文檔視圖和單文檔界面_第3頁
MFC實(shí)驗(yàn)六 文檔視圖和單文檔界面_第4頁
MFC實(shí)驗(yàn)六 文檔視圖和單文檔界面_第5頁
資源描述:

《MFC實(shí)驗(yàn)六 文檔視圖和單文檔界面》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、實(shí)驗(yàn)六文檔/視圖和單文檔界面1.創(chuàng)建一個(gè)單文檔界面應(yīng)用程序,項(xiàng)目名設(shè)置為wx03.2.在文檔類CWx03Doc中添加數(shù)據(jù)成員用于保存應(yīng)用程序的數(shù)據(jù)。二維數(shù)組m_clrGrid用于保存每個(gè)方格的顏色,數(shù)據(jù)成員m_clrCurrentColor用于保存方格被單擊時(shí)賦給方格的顏色。3.在文檔類CWx03Doc的OnNewDocument函數(shù)中對(duì)數(shù)據(jù)成員進(jìn)行初始化:4.向類wx03Doc添加三個(gè)成員函數(shù),如下:函數(shù)定義如下:GetCurrentColor、GetSquare和SetSquare作為文檔和視圖之間的橋梁,視

2、圖對(duì)象通過它們可以訪問文檔的保護(hù)成員。1.編輯CWx03View的OnDraw函數(shù),在視圖窗口中繪制網(wǎng)格,并根據(jù)文檔類中保存的方格顏色來設(shè)置方格的顏色。1.在視圖類CWx03View中添加消息處理函數(shù)WM_LBUTTONDOWN的處理函數(shù):2.利用菜單編輯器編輯個(gè)添加如下菜單,各菜單的屬性設(shè)置如下表:ID標(biāo)題(Caption)ID_EDIT_CLEARALL清除所有方格ID_COLOR_RED紅色(&R)ID_COLOR_GREEN綠色(&G)ID_COLOR_BLUE藍(lán)色(&B)ID_COLOR_CUSTOM自

3、定義...3.在派生文本類中重載DeleteContents函數(shù),用于清除所有方格內(nèi)的顏色。1.為添加的菜單項(xiàng)添加命令消息處理函數(shù)和用戶界面更新命令處理函數(shù)。由于這些函數(shù)都是針對(duì)文檔數(shù)據(jù)的操作,因此將這些菜單命令的消息處理函數(shù)添加在文檔類中。1.編譯、鏈接和運(yùn)行程序,結(jié)果如下:2.添加序列化功能,將各個(gè)方格的顏色以及當(dāng)前顏色存入文件,并允許從文件中讀取。1.編寫一個(gè)SDI程序,可以用鼠標(biāo)在視圖窗口中劃線,并能將所畫的線條保存。2.定義一個(gè)新類Cline。3.編輯類Cline,在其中添加相應(yīng)的數(shù)據(jù)成員和成員函數(shù)。1

4、.在文檔類中添加保存線段的數(shù)組。在頭文件wx03Doc.h中添加如下的數(shù)據(jù)成員和成員函數(shù),并包含定義類Cline的頭文件和使用MFC模板類時(shí)需要的頭文件:在文檔類的實(shí)現(xiàn)文件中編寫添加的成員函數(shù):1.當(dāng)在視圖窗口中按下鼠標(biāo)右鍵時(shí)開始畫線,鼠標(biāo)右鍵抬起時(shí)完成線段的繪制,在鼠標(biāo)移動(dòng)的過程中畫橡皮筋線。因此需要記錄劃線的起點(diǎn)和終點(diǎn)并設(shè)置畫橡皮筋線的跟蹤標(biāo)志。畫橡皮筋線時(shí),需要將原來的線條刪除,重新畫一條從起點(diǎn)到當(dāng)前鼠標(biāo)指針坐標(biāo)的線條,最簡(jiǎn)單的辦法是使用R2_NOT繪圖模式反轉(zhuǎn)線條。在視圖類CWx03View中添加如下的數(shù)

5、據(jù)成員和成員函數(shù):在視圖類CWx03View的實(shí)現(xiàn)文件中編寫函數(shù)InvertLine:視圖類中添加鼠標(biāo)消息WM_RBUTTONDOWN、WM_MOUSEMOVE和WM_RBUTTONUP的處理函數(shù)并添加如下代碼:1.為了在改變窗口大小或最小化后重新打開窗口,或在被覆蓋后重新顯示時(shí)保留原有的圖形,必須在OnDraw函數(shù)中重新繪制文檔中線段數(shù)組中的線段。2.在定義類Cline時(shí)實(shí)現(xiàn)了類的序列化,但只是一條線段的序列化,還必須保存文檔類的數(shù)據(jù)。編寫文檔類wx03Doc的Serialize函數(shù),完成對(duì)線段數(shù)組的序列化。3

6、.在文檔類中重載DeleteContents函數(shù):1.編譯、鏈接和運(yùn)行程序,用鼠標(biāo)在視圖窗口中畫線并測(cè)試保存、新建、打開等命令,運(yùn)行結(jié)果如圖所示:2.為wx03增加滾動(dòng)視圖功能。執(zhí)行Edit->Replace菜單命令,將視圖類CWx03View頭文件中所有Cview替換成CScrollView,同樣將實(shí)現(xiàn)文件中的所有Cview替換成CScrollView。3.在視圖類CWx03View中重載虛函數(shù)OnInitialUpdate,編輯該函數(shù)。4.修改鼠標(biāo)消息處理函數(shù),進(jìn)行設(shè)備坐標(biāo)與邏輯坐標(biāo)之間的轉(zhuǎn)換。在文檔類中保存

7、的線段坐標(biāo)是邏輯坐標(biāo),當(dāng)窗口改變大小或滾動(dòng)后,調(diào)用OnDraw重繪的線段使用的是邏輯坐標(biāo)。1.在視圖中畫橢圓。在視圖類wx03View中增加兩個(gè)數(shù)據(jù)成員,分別保存橢圓的外接矩形和顏色,同時(shí)在構(gòu)造函數(shù)中進(jìn)行初始化。2.編輯視圖類的OnDraw函數(shù),繪制橢圓:1.在視圖類中添加WM_LBUTTONDBLCLK消息處理函數(shù),當(dāng)在橢圓內(nèi)雙擊時(shí),改變橢圓的顏色:2.編譯、鏈接和運(yùn)行程序如下:

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。