MFC中畫直線和曲線

2021-06-09 01:24:31 字數 898 閱讀 7810

一、畫直線

要想在mfc中畫出有顏色的線條,首先就要設定dc的畫筆,我們可以按如下方法來設定畫筆:

第一步:在view類中新增乙個colorref型別的資料成員m_color(用來儲存畫筆顏色值),在建構函式中對其初始化,

m_color(rgb(255,0,0))

第二步:在wm_lbuttondown和wm_lbuttonup訊息的處理函式onlbuttondown和onlbuttonup中新增如下**:

void cdrview::onlbuttondown(uint nflags, cpoint point)

void cdrview::onlbuttonup(uint nflags, cpoint point)

void cdrview::onmousemove(uint nflags, cpoint point)

執行程式,就可以畫出紅色的線條來,如果想畫其它顏色,只需要設定m_color的值即可,例如,要設定成綠色,可以在view類的建構函式處把 m_color(rgb(255,0,0))改寫成m_color(rgb(0,255,0))。顏色的改變是通過設定rgb(0,255,0)中的三個引數來實現的。rgb中的三個引數分別對應三原色的紅、綠、藍,每乙個引數的取值範圍都是0~255,通過不同數值的組合,就可以畫出各種各樣的顏色來了。

二、畫曲線

步驟一:按照畫直線中介紹的方法在檢視類中新增對wm_mousemove訊息的響應函式onmousemove

步驟二:在onmousemove中寫如下**:

void cswdfview::onmousemove(uint nflags, cpoint point)

cview::onmousemove(nflags, point);}  

ok,執行程式,曲線也可以畫了。

參考:

canvas系列教程02 直線和曲線

這篇文章說下常見的坑和我們常用資料又比那些基礎的線框實用些的曲線。啥也不說,先上一梭子 moveto lineto,設個寬度顏色一stroke 描邊 完事兒。好了,我告訴上面的例子是坑爹玩意,直接上坑。是不是發現圖形變形了,我不想解釋太多為什麼,記住就好了,還是那句話,你先會用canvas畫寫簡單的...

MFC中如何畫帶實心箭頭的直線

工作中遇到話流程圖的專案,需要畫帶箭頭的直線,經過摸索,解決 思路如下 1 兩個點 p1,p2 確定乙個直線,以直線的乙個端點 假設p2 為原點,設定乙個角度 2 以p2為原點得到向量p2p1 p 向量p旋轉theta角得到向量p1,向量p旋轉 theta角得到向量p2 3 伸縮向量至制定長度,平移...

單文件中畫直線

之前需要將單文件分成兩個框 1.給對話方塊新增四個編輯框和乙個按鈕。右鍵單擊編輯框,新增變數,類別為value,型別double,變數名m startlinex。2.在類檢視中,對話方塊類中右鍵在對話方塊標頭檔案中新增函式ondrawline,同時在對話方塊標頭檔案中新增 double line 2...