close

 

本來我是打算分兩章節寫的,後來....請原諒我真的太懶惰  

 

先講講原角好了,什麼是原角? 

這個叫做直角,也就是我們一般看到的四方型 ( 廢話..... )

那原角就是

長這樣

 

然後我在畫的詳細一點

好吧,我承認我沒有繪畫天賦...................

anyway , never mind 

我想表達的是,有時候我們需要我們畫出來的東西不要這麼死,就要需要畫成這樣

但是這樣要怎麼畫 ? 來,我們直接看code

 

 

Step 1 :

Load lib 

 

Step2 :

開始與結束 (必不可少)

 

然後我們在InitInstance () 那邊

 

啟動。 ( 如果你不做這個動作,你會發現你宣告的任何Gdi object 都拿不到pointer 並且,他會回傳沒有init給你,然後你就怎麼樣也做不了 ,所以本人覺得這個步驟真的很重要 )

 

 

有了啟動,我們就需要相對應的結束

在Main結束的時候,會跑到這裡來,然後我們就結束了 。

 

到這邊不難理解吧 ? 有開始有啟動,ok ,接下來我們開始畫了哦 !!!

 

 

 

 

Step 3 : Draw Rectangle

因為我要直接畫在底圖上,所以我直接使用EraseBkgnd

※這裡要注意的是,如果 ! 你宣告了 Graphics gdi (pDC->m_hDC ) ;

然後你的gdi沒有任何address,那麼就是你Step2的開始沒有做。

 

 

 

結果 : 

太細 ? 

int width = 20;

修改成 :

int width = 20;

 

 

 

接下來,我們要畫一個半透明的圖在上面

 

 

 

畫圖,我們需要知道開始和結束

開始 = OnLButtonDown ( 滑鼠左鍵按下去 )

結束 = OnLButtonUp      ( 滑鼠左鍵放開    )

 

所以我們需要有兩個座標,開始和結束

Step 1 : 

我們在Class member 裡面新增一個變數來記載開始的座標

 

Line 276 : 不用管,那只是我用radio button做的控制要不要畫的開關而已

如果你也要這個....去參考我前幾天寫的radio button的寫法,然後Function裡面就這樣寫

Line 278 : 用一個BOOL 的變數記載LBButtonDown 

Line 279 : 將開始的座標記得

 

 

Step2 :

因為我邊寫教學邊做專案- -| 所以我四個Rectangle變成藍色的,有要改的人就直接去上面改一改

 

如此一來,我們直接按Build 

就畫了一個半透明的東西了

 

 

 

 

Step3

 

 

That 's All 

 

arrow
arrow

    Eric 發表在 痞客邦 留言(0) 人氣()