热情软件屋

 

如何使控件的内容根据鼠标的位置发生变化


编号:QA001806
建立日期: 1999年10月2日 最后修改日期:1999年10月2日
所属类别:

LL:
    我是VB初学者,现有一事不明须请教:我做了一表单Form,上有一图片Image1,当鼠标移动(Move)到Image1时,Image1变成Image2,不知程序该如何实现?

回答:

    我在QA000437 "如何设置鼠标为不可见及如何捕捉到鼠标移动"介绍了如何捕捉到鼠标移动,具体到你的问题可以采用下面的办法:
    1、在Form上放置一个Timer控件,设置Interval属性为100。
    2、设置Form的ScaleMode属性为3。
    3、输入如下代码:
    Dim highlighted As Boolean
    
    Private Type POINTAPI
     x As Long
     y As Long
    End Type
    Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    
    Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If highlighted Then Exit Sub
     highlighted = True
     Image1.Picture = LoadPicture("nav_catalog_roll.gif")
     Timer1.Enabled = True
    End Sub
    
    Private Sub Timer1_Timer()
    Dim pt As POINTAPI
    
     GetCursorPos pt
    
     ScreenToClient hwnd, pt
    
     If pt.X < Image1.Left Or pt.Y < Image1.Top Or _
     pt.X > Image1.Left + Image1.Width Or _
     pt.Y > Image1.Top + Image1.Height _
     Then
     highlighted = False
     Image1.Picture = LoadPicture("nav_catalog.gif")
     Timer1.Enabled = False
     End If
    End Sub

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio