1. 程式人生 > >手把手教你建立繪製圓形的MFC專案

手把手教你建立繪製圓形的MFC專案

0.說明

第一次接觸的朋友通過實踐此教程可以初步掌握建立MFC專案繪製基本圖形的方法,本教程實現了正真意義上的手把手教,所以有些繁瑣,但對於初學者來說是件好事。

先學會建立專案,在學會搭建自己想要的介面,最後是演算法設計與實現

本教程重心在於前兩步,先一步一步做出個可執行的殼出來,這對我們繼續學習會有更大的信心與成就感喲

建議渴望快速掌握的你拿起電腦,一步一步跟著做,效果會更好喲,我會將原專案程式碼上傳到CSDN部落格【我的資源】,需要的朋友可以自行下載

本教程借用繪製圓形來展示操作流程,達到的效果如下圖所示

1)主介面 圖1

2)點選【圓的繪製】-》彈出子選單【中點Bresenham演算法】-》彈出對話方塊 在這裡插入圖片描述

3)輸入200,得到圓形 在這裡插入圖片描述

1.建立專案

1)在Windows10作業系統下開啟VC++6.0,單擊選單【File】->單擊【New】(如下圖所示) 在這裡插入圖片描述

2)此時會彈出【New】對話方塊,單擊選擇【MFC AppWizard (exe)】->在【Project Name:】的下方填上你想要的專案名稱,本例子使用【MbCircle】作為專案名(如圖所示) 在這裡插入圖片描述

3)單擊【OK】會彈出對話方塊,單擊【Finish】再次彈出對話方塊,單擊【OK】,專案建立成功(成功建立介面如下圖所示) 在這裡插入圖片描述 4)設定專案版本,單擊【Build】->【Set Active Configuration】,單擊【MbCircle -Win32 Release】,單擊【OK】,(如下2張圖所示) 在這裡插入圖片描述

在這裡插入圖片描述

5)按【Ctrl+F5】執行專案,這是MFC框架為你自動生成的介面(如下所示),接下來只需要修改相應類即可

在這裡插入圖片描述

2.建立需要的對話方塊

1)單擊介面左側的【ResourceView】->右擊資料夾【Dialog】->單擊【Insert Dialog】,結果如下所示 在這裡插入圖片描述

2)拖拽懸浮框中的部件,設計需要的對話方塊,拖拽一個【Static Text】(圖示是【Aa】),再拖一個【Edit Box】(圖示是【ab|】)

在這裡插入圖片描述 3)右鍵【Static】->單擊【Properties】->修改【Caption】,如下所示 在這裡插入圖片描述

4)為對話方塊建立相應的類:雙擊對話方塊任意位置,會彈出對話方塊,點選【OK】,會彈出【New Class】對話方塊,修改【Name】,效果如下,單擊【Ok】即可 在這裡插入圖片描述

5)建立對話方塊與對話方塊類的變數對應:單擊【View】->【MFC ClassWizard】->【Member Variables】->雙擊【IDC_EDIT1】->修改【Member variable name】與【Variable type】,如下所示,然後一路【OK】即可 在這裡插入圖片描述

3.新增執行介面的選單選項

1)單擊【ResourceView】->雙擊資料夾【Menu】->雙擊【IDR_MBCIRTYPE】->雙擊選單欄虛線框->修改【Caption】,效果如下

在這裡插入圖片描述 2)單擊【圓的繪製】->雙擊其子選單的虛線矩形框->修改【ID】,【Caption】,效果如下 在這裡插入圖片描述 4.建立訊息對映 1)單擊【View】->【MFC ClassWizard】->【Message Map】。依次選擇框【Class name】,【Object IDs】,【Messages】中的內容(***一定按順序,***選擇內容如下) 在這裡插入圖片描述

2)單擊【Add Function】->單擊【OK】->單擊【Edit Code】編輯函式 在這裡插入圖片描述

3)單擊【FileView】->【SourceFiles】->【MbCircleView.cpp】->新增標頭檔案【InputDlg.h】 在該cpp檔案找到【OnMENUITEMMBCircle()】函式,初步編輯,新增內容如下

在這裡插入圖片描述 4)執行專案-》單擊選單【圓的繪製】-》【中點Bresenham演算法】-》若是彈出對話方塊效果如下,說明你到目前為止操作正確。到此,關於介面設計全部完成,接下來是演算法設計

在這裡插入圖片描述

5.演算法設計

該教程重心在讓人掌握MFC介面設計,演算法不是此教程重點(可直接複製) 本例採用“中點Bresenham演算法”

1)步驟如下 1.輸入圓的半徑R。 2.計算初始值d=1-R、x=0、y=R。 3.繪製點(x,y)及其在八分圓中的另外七個對稱點。 4.判斷d的符號。若d<0,則先將d更新為d+2x+3,再將(x,y)更新為(x+1,y);否則先將d更新為d+2(x-y)+5,再將(x,y)更新為(x+1,y-1)。 5.當x<y時,重複步驟3和4。否則結束。

2)在【MbCircleView.h】中新增保護型物件 在這裡插入圖片描述 同時新增公有函式

在這裡插入圖片描述 3)在【MbCircleView.cpp】完善函式 新增巨集定義與相應標頭檔案,該標頭檔案若是之前新增過就不必再次新增 在這裡插入圖片描述 完善getMaxX(),getMaxY() 在這裡插入圖片描述 完善circlePoint(double x,double y) 在這裡插入圖片描述 完善MbCircle() 在這裡插入圖片描述 6.執行測試 執行專案,輸入半徑200,效果如下

在這裡插入圖片描述

初次使用一個軟體,是最痛苦的了,跟著例子做,完全一樣,還是無法執行,所以以後每次學習新的案例時,先把原始碼跑一遍,可以執行的話,再上手實踐一遍,這樣不會打擊自信心,效率也高。

為了不讓其他人也把時間浪費在簡單的介面設計與專案搭建上,特地寫了這篇部落格,希望能幫到你