一樣是工作用到的,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