新建一个image控件数组:成员 image1(0) image1(1) .picture属性任选两张图片代码如下:
Private Sub Image1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
  II = Index
 If Button = vbLeftButton Then
          Image1(II).Move Image1(II).Left + X - tx - 400, Image1(II).Top + Y - ty - 200  End If
End Sub当任意移动一个成员时,会与另一个成员重叠,如何防止重叠,(或发出提示并返回到原来坐标位置)请高手指教.

解决方案 »

  1.   

    只要判断一下两个控件的坐标和宽度高度就可以了.
    大体代码:
    DIM X(1) AS LONG
    DIM Y(1) AS LONG
    DIM HEI AS LONG
    DIM WID AS LONG
    DIM I AS LONG
    FOR I =0 TO 1  '这里先获取两个控件的中心坐标
    X(0)=IMAGE1(I).LEFT + IMAGE1(I).WIDTH/2
    Y(0)=IMAGE1(I).TOP + IMAGE1(I).HEIGHT/2
    NEXT
    WID=(IMAGE1(0).WIDTH + IMAGE1(1).WIDTH)/2
    HEI=(IMAGE1(0).HEIGHT + IMAGE1(1).HEIGHT)/2
    '然后判断:
    IF ABS(X(0)-X(1))< WID AND ABS(Y(0)-Y(1))<HEI THEN MSGBOX"撞车啦"这段代码是随手写的,楼主自己调试.能看明白意思就最好了,自己改就是了.
    其实只要拿张纸,自己动手画个图,随便比划比较,这种"算法"也就呼之欲出了.