資源描述:
《計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐MFC畫(huà)圖軟件》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐課程設(shè)計(jì)報(bào)告班級(jí)一計(jì)算機(jī)科學(xué)與技術(shù)1303班學(xué)號(hào)130405320姓名韋昌桿指導(dǎo)教師楊威2015年1刀8口交互式繪圖程序1?引言計(jì)算機(jī)的發(fā)展也是計(jì)算機(jī)語(yǔ)言的發(fā)展得到了很大的提髙,人們的生活中離不開(kāi)圖像,除了我們可以用鉛筆在紙上畫(huà)圖外,我們也可以在電腦上繪制我們的想象,本實(shí)驗(yàn)就是基于VC++的一個(gè)小型的繪圖軟件。目的:1.掌握用VC卄6.0開(kāi)發(fā)環(huán)境開(kāi)發(fā)軟件的方法;2.熟悉獲得幫助的方法;3.掌握SDT應(yīng)用程序結(jié)構(gòu),熟悉基于對(duì)話(huà)框的應(yīng)用程序編程方法;4.掌握用資源編輯器進(jìn)行圖標(biāo),菜單,工貝-欄,対話(huà)框等資源的編輯;5.掌握對(duì)話(huà)框,常用控件的使用方法;6.熟悉文檔/視圖結(jié)構(gòu),掌握文
2、檔和視圖的相互控制技巧;2.需求分析2.1系統(tǒng)功能分析口定義一個(gè)工具欄,工具欄提供功能按鈕,實(shí)現(xiàn)簡(jiǎn)單基本圖形的繪制,如直線(xiàn)、矩形、圓形、橢圓形、扇形,多邊形,填充色等。實(shí)現(xiàn)對(duì)圖形的交互編輯,如修改顏色和線(xiàn)型等;2.2系統(tǒng)設(shè)計(jì)目標(biāo)本系統(tǒng)實(shí)現(xiàn)了繪圖程序的基本功能,新建的工具欄中包含了繪圖的基本按鈕,例如點(diǎn),直線(xiàn),矩形,圓,扇形,五角星,多邊形,填充色等在菜單欄中加入了對(duì)圖形的革木編輯,比如對(duì)圖形邊框的顏色,線(xiàn)型,線(xiàn)寬等編輯在工具中加入了連續(xù)畫(huà)筆這一功能,使大家可以在電腦上和在紙上一樣口由的畫(huà)圖。3.系統(tǒng)設(shè)計(jì)3.1系統(tǒng)功能設(shè)計(jì)3.2系統(tǒng)工作流程3.3類(lèi)設(shè)計(jì)與類(lèi)結(jié)構(gòu)3?4開(kāi)發(fā)與運(yùn)行環(huán)境Microsof
3、tVisualc++6.04設(shè)計(jì)與實(shí)現(xiàn)設(shè)計(jì)的界面為卜?圖所示Untitled-CGraphics1.添加消息響應(yīng)函數(shù)OnSetting(),并添加頭文件z,SettingDlg.h”,在view類(lèi)中添加成員變量m_nLineWidth,初始化。給單選按鈕增加成員變Mm_nLineStyle,初始化。2.當(dāng)用戶(hù)點(diǎn)擊0K時(shí),將其保存:CSettingDlgdig;dig.m_nLineWidth=m_nLineWidth;/*保存用八設(shè)定的值*/dig.LineStyle=m_nLineStyle;if(IDOK==dlg.DoModal()){m_nLineWidth=dlg.m_nLineWi
4、dth;/*點(diǎn)擊確定時(shí)保存下來(lái)*/m_nLineStyle二dig.m_nLineStyle;}3?對(duì)顏色這一項(xiàng)增加命令響應(yīng),創(chuàng)建dig對(duì)象,并在view類(lèi)中增加成員變量m_clr,初始化:CColorDialogdlg;dig.m_cc.Flags
5、=CC_RGBIN1T;/*標(biāo)記*/dig.m_cc.rgbResult=m_clr;/*保存用戶(hù)設(shè)定的值*/if(IDOK二二d1g.DoModa1()){m_clr=dlg.m_cc.rgbResult;/*點(diǎn)擊確定時(shí)保存下來(lái)*/5?在之前的OnLButtonUp函數(shù)中加入畫(huà)筆函數(shù),并將之前設(shè)定的m_nLineStyle,m_nIJneWid
6、th,m_clr作為畫(huà)筆函數(shù)的形參添加到其中,并作為nDrawType二9對(duì)其進(jìn)行響應(yīng):CClientDCde(this);CPenpen(m_nLineStyle,m_nLineWidth,m_clr);/*繪制畫(huà)筆*/de.SelectObject(&pcn);6.捕獲鼠標(biāo)移動(dòng)命令并將畫(huà)筆函數(shù)寫(xiě)入其中:de.MoveTo(m_ptOrigin);de.LineTo(point);m_ptOrigin=point;7.對(duì)填充色增加命令響應(yīng),在響應(yīng)兩數(shù)小將nDrawType=10寫(xiě)在里面,在OnLButtonLp小編寫(xiě)函數(shù):CBrushbrFi11;brFill.CreateSolidBrus
7、h(m_clr);pBrush=de.SelectObject(&brFill);de.ExtFloodEi11(point,x,point,y,de.GetPixel(point),FLOODFILLSUREACE);de.SelectObject(pBrush);&對(duì)橡皮增加命令響應(yīng),在響應(yīng)函數(shù)中將nDrawType=l1,寫(xiě)在里血,,在OnMouseMove中編寫(xiě)函數(shù):CC1ientDCde(this);CPenpen(O,10,RGB(255,255,255));de.SelectObject(&pen);de.MoveTo(m_ptOrigin);de.LineTo(point);m
8、ptOrigin^poini;測(cè)試與運(yùn)行結(jié)果:無(wú)錯(cuò)誤和警告,運(yùn)行時(shí),符合預(yù)先設(shè)定的標(biāo)準(zhǔn)5結(jié)語(yǔ)5.1結(jié)論與討論:通過(guò)認(rèn)真學(xué)習(xí)視頻和研究課外書(shū)籍以及網(wǎng)上杳資料,不斷嘗試,完成了任務(wù),基木滿(mǎn)足了設(shè)計(jì)的要求。5.2設(shè)計(jì)體會(huì):通過(guò)親手操作,明顯感到編程的不易。因?yàn)槟芰Φ牟蛔?,多處函?shù)的實(shí)現(xiàn)通過(guò)看書(shū)和視頻的情況下寫(xiě)出來(lái)。為得到更好的程序,今后還須努力鉆研編程以獲得更好的成果。本系統(tǒng)適合運(yùn)行于XP、WIN7等系