資源描述:
《vc實(shí)現(xiàn)bmp位圖的打開(操作完整版)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、VC實(shí)現(xiàn)bmp位圖的打開0.準(zhǔn)備工作創(chuàng)建一個SDI(單文檔接口),工程名Test,“CScrollView”表示滾動顯示。向?qū)ё詣由闪?個類。可以編譯、運(yùn)行一下。說明:MFC框架的核心是文檔——視結(jié)構(gòu),它將數(shù)據(jù)和對數(shù)據(jù)的觀察相分離,①文檔僅處理數(shù)據(jù)的讀寫操作,數(shù)據(jù)保存在文檔類的成員變量中,②視是用來顯示和處理數(shù)據(jù)的窗口。視圖從文檔類中(而不是從存儲介質(zhì)中)將文檔中的數(shù)據(jù)取出來,然后在屏幕上顯示文檔的數(shù)據(jù)。MFC框架通過命令和消息將他們結(jié)合起來。1.添加頭文件和程序(主要用于圖像處理)①頭文件Cdi
2、b.h將頭文件的程序拷貝過來②程序CDIP.cpp將程序拷貝過來注釋:(此時(shí)可以運(yùn)行,并且可打開文件,但是沒有結(jié)果顯示)2.創(chuàng)建菜單(設(shè)計(jì)用戶界面)創(chuàng)建兩個菜單:Caption:打開??????ID:ID_FILE_OPENCaption:顯示原圖??ID:ID_YUANTU(1)顯示原圖右擊,出現(xiàn)上面菜單,選擇“建立類向?qū)А边x擇“AddFunction”“OK”選擇“EditCode”,進(jìn)入程序編寫代碼voidCTestView::OnYuantu()。(2)打開文件選擇“AddFunction”
3、“OK”選擇“EditCode”,進(jìn)入程序編寫代碼voidCTestView::OnYuantu()。(3)添加的內(nèi)容(a)TestDoc.h中:前面//很重要,添加內(nèi)容#include"CDIB.h"classCTestDoc:publicCdocument{public://*****************CDibCDibNew;CStringfilename;//用于testDoc.cpp文件中的變量……(b)TestView.h中classCTestView:publicCScrollVi
4、ew{//Operationspublic://****************CStringfilename;//存儲文件名intstate1;//按下“圖像顯示”按鈕的標(biāo)示,……3.打開菜單進(jìn)行響應(yīng)(編寫函數(shù)代碼)右鍵打開菜單,建立類向?qū)?,①在CTestDoc類中,進(jìn)行COMMAND響應(yīng),生成OnFileOpen函數(shù),②在CtestView類中,進(jìn)行COMMAND響應(yīng),生成OnYuanTu函數(shù)步驟:選擇“EditCode”,進(jìn)入程序編寫代碼voidCTestView::OnYuantu()。代碼
5、參考程序4.顯示圖像顯示圖像當(dāng)然要在View類中,因此圖像的顯示操作要在該類的OnDraw函數(shù)中進(jìn)行在該類中,我們要在菜單中點(diǎn)解“圖像顯示”按鈕,然后才顯示圖像,所以我們要先響應(yīng)菜單中“顯示原圖”命令。因此,右鍵“顯示原圖”,建立類向?qū)?,在CTestView類中進(jìn)行COMMAND響應(yīng),生成OnYuanTu函數(shù),代碼參考程序:接下來,在點(diǎn)擊“顯示原圖”按鈕之后,就要在OnDraw函數(shù)中顯示圖像了,代碼參考程序5.運(yùn)行程序運(yùn)行程序,就可以打開一幅位圖并顯示打開文件顯示的流程:1.用ClassWizard
6、建立打開文件的消息處理函數(shù)2.建立類CFileDialog的對象,獲取bmp文件路徑3.建立類CFile對象,讀取bmp文件內(nèi)容,包括判斷是否bmp文件,讀寫圖像尺寸、讀取圖像數(shù)據(jù)到圖像數(shù)據(jù)數(shù)組。4.通過CDC類從圖像數(shù)據(jù)數(shù)組中取圖像數(shù)據(jù)顯示。