資源描述:
《具有基本功能的矢量繪圖軟件實(shí)驗(yàn)報(bào)告.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、題目具有基本功能的矢量繪圖軟件院、系(部)專業(yè)及班級(jí)學(xué)號(hào)姓名日期1題目要求使用VS環(huán)境編寫(xiě)MFC類程序,制作一個(gè)具有基本功能的矢量繪圖軟件。2需求分析22本實(shí)驗(yàn)的”矢量繪圖”軟件是一個(gè)具有Office視覺(jué)樣式的單文檔應(yīng)用程序,在應(yīng)用程序的主框架窗口中包含一個(gè)Ribbon功能區(qū),其中有兩個(gè)標(biāo)簽選項(xiàng)卡:“主頁(yè)”和“繪圖”。當(dāng)選擇“繪圖”選項(xiàng)卡后,將列出一些簡(jiǎn)單的繪圖工具。選擇某個(gè)繪圖工具后,既可以再客戶區(qū)繪制相應(yīng)的圖形;單擊面板上的“畫(huà)筆顏色”或“填充顏色”按鈕后,將淡出一個(gè)顏色對(duì)話框以分別設(shè)置繪圖的顏色及填充圖形的顏色,而當(dāng)單擊“文本”按鈕后,可以在客戶區(qū)輸入文本內(nèi)容。3總
2、體設(shè)計(jì)3.1業(yè)務(wù)邏輯設(shè)計(jì)22223.2界面邏輯設(shè)計(jì)使用VS新建項(xiàng)目,選擇VC++項(xiàng)下的“MFC”項(xiàng)目類型,在彈出的“應(yīng)用程序類型”界面中選擇如圖所示,然后進(jìn)行一系列的設(shè)置后生成所需界面。所生成界面如圖:223.3數(shù)據(jù)庫(kù)設(shè)計(jì)(如涉及數(shù)據(jù)庫(kù)寫(xiě)這一部分)數(shù)據(jù)庫(kù)設(shè)計(jì)這里只給出表結(jié)構(gòu)。4詳細(xì)設(shè)計(jì)MyDraw111view.h#pragmaonce#include"Draw.h"#defineSHAPE_NULL0#defineSHAPE_PEN1#defineSHAPE_TEXT2#defineSHAPE_LINE3#defineSHAPE_RECT4#defineSHAPE_EL
3、LIPSE5#defineSHAPE_CIRCLE6#defineSHAPE_ERASER7classCMydraw111View:publicCView{protected://僅從序列化創(chuàng)建CMydraw111View();DECLARE_DYNCREATE(CMydraw111View)//特性public:CMydraw111Doc*GetDocument()const;//操作public:BOOLm_bDrawShape;CPointm_ptOrigin;//直線起始點(diǎn)CPointm_ptPrv;//直線終止點(diǎn)//重寫(xiě)public:virtualvoidOnD
4、raw(CDC*pDC);//重寫(xiě)以繪制該視圖virtualBOOLPreCreateWindow(CREATESTRUCT&cs);public:virtual~CMydraw111View();#ifdef_DEBUGvirtualvoidAssertValid()const;virtualvoidDump(CDumpContext&dc)const;#endif22protected:afx_msgvoidOnFilePrintPreview();afx_msgvoidOnRButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOn
5、ContextMenu(CWnd*pWnd,CPointpoint);DECLARE_MESSAGE_MAP()public:intm_nDrawShape;//繪圖類型COLORREFm_crDrawColor;COLORREFm_crFillColor;afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct);afx_msgvoidOnDrawPen();afx_msgvoidOnDrawLine();afx_msgvoidOnUpdateDrawPen(CCmdUI*pCmdUI);afx_msgvoidOnUpdateDra
6、wLine(CCmdUI*pCmdUI);afx_msgvoidOnDrawColor();afx_msgvoidOnFillColor();afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);afx_msgvoidOnMouseMove(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonUp(UINTnFlags,CPointpoint);BOOLm_bShowCaret;BOOLm_bInputTEXT;POINTm_ptCaretPos;CStringm_strTextBuf;LOG
7、FONTm_lfTextFont;afx_msgvoidOnSetFocus(CWnd*pOldWnd);afx_msgvoidOnKillFocus(CWnd*pNewWnd);afx_msgvoidOnDrawText();afx_msgvoidOnChar(UINTnChar,UINTnRepCnt,UINTnFlags);afx_msgBOOLOnSetCursor(CWnd*pWnd,UINTnHitTest,UINTmessage);afx_msgvoidOnActivate(UINTnState,CWnd*pWn