就如何把第二個圖形放在第一個圖形上面<br>因為小弟每次做解果兩個圖形都會重疊在一起說.......<br>
Check兩個物件是否相碰 來源:cww 基本上這兩個物件要是一個四方形的區域,如果是不規則形者,不在此限, 這個問題似乎沒有很大的困難,不過API有提供了,何不用上一用省得程式得長,又 有Bug就不好了。 另外,如果Check某個點有沒有在某個RECT中,則用PtInRect API,這應沒有什麼太困 難,所以沒有範例,而某條線和Rect又有沒有相交呢?似乎沒有什麼API來做,所以可 以考慮使用PtInRect()來做,將線條的每個點傳進去Check不就知道,只是如何取得線 條上的每一個點,我只會土法鍊鋼,程式臭臭長長的,不敢拿出來給大家參考,所以 若有人有其演算法,可以Mail給我 '以下在.Bas中 Type RECT '矩形的四個座標 Left As Long Top As Long Right As Long Bottom As Long End Type Type POINTAPI x As Long y As Long End Type Declare Function IntersectRect Lib "user32" (lpDestRect As RECT, _ lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long Declare Function PtInRect Lib "user32" (lpRect As RECT, _ pt As POINTAPI) As Long 'Check rect1, rect2有沒有相交集,若有,則Orect存相交集的四個座標 Public Function GetOverlap(rect1 As RECT, rect2 As RECT, Orect As RECT) _ As Boolean Dim i As Long GetOverlap = False i = IntersectRect(Orect, rect1, rect2) If i <> 0 Then GetOverlap = True End Function '以下在Form中,form中放兩個CommandBox Private Sub Form_Load() Dim i As Long, rect1 As RECT, rect2 As RECT, rect3 As RECT Dim oo As Boolean rect1.Top = Command1.Top rect1.Left = Command1.Left rect1.Bottom = Command1.Top + Command1.Height rect1.Right = Command1.Left + Command1.Width rect2.Top = Command2.Top rect2.Left = Command2.Left rect2.Bottom = Command2.Top + Command2.Height rect2.Right = Command2.Left + Command2.Width oo = GetOverlap(rect1, rect2, rect3) End Sub