我现在用IMAGE控件来显示一个图片,目的想这样:初始状态在IMAGE里载入了一个图片,当把鼠标放到IMAGE这里区域里的时候,我想让IMAGE里载入另外一副图片,如果鼠标在这个区域外,那么还是显示原来的那个图片,请问如何解决?

解决方案 »

  1.   

    GetCursorPos取得鼠标位置,然后判断是否在区域内
      

  2.   

    Private Sub Form_MouseMove(...)
        Image1.Image = LoadPicture(Pic1)
    End SubPrivate Sub Image1_MouseMove(...)
        Image1.Image = LoadPicture(Pic2)
    End Sub
      

  3.   

    用setcapture和releasecapture方法,但是需要控件句柄,image控件无法得到句柄,
    所以如果需求允许的话可以换成无边框的picturebox控件.此外,还可以用Timer +
    ScreenToClient + GetCursorPos但后者缺陷较多Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim MouseOut As Boolean
    MouseOut = (X < 0 Or Y < 0 Or X > Picture1.Width Or Y > Picture1.Height)
    If MouseOut = False Then
    SetCapture Picture1.hWnd
    Picture1.Picture = LoadPicture("C:\PictureOver.bmp")
    Else
    ReleaseCapture
    Picture1.Picture = LoadPicture("C:\PictureOut.bmp")
    End If
    End Sub
      

  4.   

    简单的,上面有位属性写错了:
    Private Sub Form_MouseMove(...)
        Image1.Picture = LoadPicture(Pic1)
    End SubPrivate Sub Image1_MouseMove(...)
        Image1.Picture = LoadPicture(Pic2)
    End Sub