none
VB6.0 如何使用 CombineRgn 來斷判2個不規則視窗是否重疊? RRS feed

  • 問題

  • 假設兔子和老虎的圖片 我各有一張,二張圖的底色都是藍色。

    各放在一個form中,再去掉標題列和底色的部份,形成2個不規則視窗。

    如何使用 CombineRgn 來判斷這二個視窗是否重疊?

    2007年9月13日 上午 09:21

解答

所有回覆

  • 你前面問的這篇不就有回給你嗎?

    回覆:用VB6.0 所建的二個任意視窗,如何得知它們是否有重疊? 

     

    另外你這篇舉的例子與標題不同,透明底色的圖片造成不規則的視窗,你並沒有定義到你的不規則邊界 Region ,所以不能用 CombineRgn 來判斷,透明底色的圖片基本上還是方框,只是因為底色透明達到透空的效果,所以變成你自己要做 R -> V (點陣轉向量) ,才呼叫 CombineRgn 來判斷。

    2007年9月14日 上午 08:44
    版主
  •  

    璉璉大大你好:

    宣告了~~

    Declare Function CombineRgn Lib "gdi32" Alias "CombineRgn" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long

    之後

    If CombineRgn(?, ?, ?, RGN_AND) = COMPLEXREGION Then MsgBox "重疊"

    ---------------------------------------------------------------------------------------------------------------------------------------------

    hDestRgn, hSrcRgn1, hSrcRgn2 我不知道如何取得

    2007年9月14日 上午 11:21
  • 當然要自己建立。看 MSDN 時,要看整個函數的 Referance ,那邊有整區 Region 相關函數。

     

    自己建立前面也說過了:

    回覆:請問如何建立可物件化的繪圖程式

    2007年9月14日 下午 04:18
    版主