close

 

一樣是工作用到的,UnionRect ,為防老人癡呆,

還是將寫的小sample的code放在blog好了 =_= 。

(我這一個Sample很簡單 =_= .. 目的只有讓大家了解UnionRect 是什麼而已,所以! code 本身不重要 !......)

 

Step 1 . Create Two Button && assign name 

 

 

Step2 .Double - click , You will get two function 

1 = Test Union            (將兩個連在一起,變成一個)

0 = Test IntersectRect (判斷這兩個是不是有碰在一起)

 

 

Step 3. Go to CurrentDialog.h (UnionRectSampleDlg.h) 

 

 

 

that's all -___-|| 

因為專案在趕的關係,在介紹的速度我就稍微快一點,如果跟不上的人,麻煩自己從頭敲一次,就大概懂了。

 

 

OnBnClickedPrototype()

是畫三個rectangle

 

 

 

 

 

OnBnClickedUnion()

讓兩個連起來

A 和 C 連起來 

 

我們來看一下 UnionRect 的介紹 

 

UnionRect function

The UnionRect function creates the union of two rectangles. The union is the smallest rectangle that contains both source rectangles.

 

這段話的意思就是他最後會output一個rect出來,就是這兩個的聯合,然後我們進到Code裡面,對這個UnionRect去按F12

BOOL
WINAPI
UnionRect(
    __out LPRECT lprcDst,
    __in CONST RECT *lprcSrc1,
    __in CONST RECT *lprcSrc2);

 

-> 回傳值是BOOL的,所以我直接用if 去判斷, if ( TRUE ) -> 則畫一個新的Rectangle去蓋掉原本兩個,else → 清空掉。

-> 然後,我們看到參數,第一個是out的,代表我們要把東西丟進去,他在吐出來,所以我們將第二個第三個參數填一填,我們就能得到第一個參數。

而這個Rect的範圍,就是後面那兩個Rect有涵蓋到的範圍。

 

 

 

Final  :

 

 

 

然後我們看下面那段 

 

判斷兩個是不是有碰在一起

 

 

藍色和灰色,很明顯沒有

接下來我們按Union (懶的在寫一個按鈕-_-... 所以直接用if else 比較快...)

 

接下來驗證一次,接RectangleC 換成 RectangleB,這時我們就預期會出現Y了

 

這樣沒錯,因為紅色和藍色確實是有接觸的 。

 

 

 

 

that's all

arrow
arrow

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