Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.FontName = "宋体" End Sub Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.FontName = "隶书" End Sub
Option Explicit Private Declare Function ReleaseCapture Lib "user32" () As Long Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As LongPrivate Sub Command1_Click() Command1.Tag = "" End SubPrivate Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Command1.Tag = "In" Then If X < 0 Or Y < 0 Or X > Command1.Width Or Y > Command1.Height Then Command1.Tag = "" ReleaseCapture 'Command1.ToolTipText = "命令按钮" Command1.Caption = "离开" End If Else Command1.Tag = "In" SetCapture Command1.hwnd Command1.Caption = "进入" End IfEnd Sub 这是对按钮的,你将按钮换成标签就可以了。
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private lblHttpTop As Long '记录两个超链接标签的原始Top,用以模鼠标感知下沉时 Private lblMailtoTop As Long ' 下沉后能浮上来 Private lblHttpFColor As Long Private lblMailtoFColor As Long '记录两标签的ForeColor,初始化为vbBlue.访问后为&H00000080& Private Sub Form_Load() Me.Caption = App.Title lblHttpTop = lblHttp.Top lblMailtoTop = lblMailto.Top lblHttpFColor = vbBlue lblMailtoFColor = vbBlue End SubPrivate Sub lblHttp_Click() ShellExecute hwnd, "open", lblHttp.Caption, vbNull, vbNull, 0 lblHttp.ForeColor = &H80& lblHttpFColor = &H80& End Sub Private Sub lblHttp_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lblHttp.ForeColor = vbRed lblHttp.Top = lblHttpTop + 20 End Sub Private Sub lblMailto_Click() ShellExecute hwnd, "open", lblMailto.Caption, vbNull, vbNull, 0 lblMailto.ForeColor = &H80& lblMailtoFColor = &H80& End Sub Private Sub lblMailto_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lblMailto.ForeColor = vbRed lblMailto.Top = lblMailtoTop + 20 End SubPrivate Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lblHttp.ForeColor = lblHttpFColor lblMailto.ForeColor = lblMailtoFColor If lblHttp.Top <> lblHttpTop Then lblHttp.Top = lblHttpTop If lblMailto.Top <> lblMailtoTop Then lblMailto.Top = lblMailtoTop End Sub将两个lable控制lblHttp和lblMailto放到一个frame1中,将它们的caption分别设为 http://xxx.xxx和mailto://[email protected]就行了。
Label1.FontName = "宋体"
End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.FontName = "隶书"
End Sub
把Label放到Frame中(Frame要比Label大一点点)
然后,Label的Mouse_Move事件中 “label上的字体发生变化”
Frame的Mouse_Move事件中 “label上的字体恢复”
这样,当鼠标移到Label上时,会触发Label的Mouse_Move事件而导致“label上的字体发生变化”,而当鼠标移走时会触发Frame的Mouse_Move事件而导致“label上的字体恢复”
Good Luck! : )
你要写个函数功能是读取你的lable的(x0,y0,x1,y1)!
把这个区域在窗体中所发生的响应写在窗体的mousemove事件就可以!
我喜欢用窗体的mousemove 来恢复。
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As LongPrivate Sub Command1_Click()
Command1.Tag = ""
End SubPrivate Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Command1.Tag = "In" Then
If X < 0 Or Y < 0 Or X > Command1.Width Or Y > Command1.Height Then
Command1.Tag = ""
ReleaseCapture
'Command1.ToolTipText = "命令按钮"
Command1.Caption = "离开"
End If
Else
Command1.Tag = "In"
SetCapture Command1.hwnd
Command1.Caption = "进入"
End IfEnd Sub
这是对按钮的,你将按钮换成标签就可以了。
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private lblHttpTop As Long '记录两个超链接标签的原始Top,用以模鼠标感知下沉时
Private lblMailtoTop As Long ' 下沉后能浮上来
Private lblHttpFColor As Long
Private lblMailtoFColor As Long '记录两标签的ForeColor,初始化为vbBlue.访问后为&H00000080&
Private Sub Form_Load()
Me.Caption = App.Title
lblHttpTop = lblHttp.Top
lblMailtoTop = lblMailto.Top
lblHttpFColor = vbBlue
lblMailtoFColor = vbBlue
End SubPrivate Sub lblHttp_Click()
ShellExecute hwnd, "open", lblHttp.Caption, vbNull, vbNull, 0
lblHttp.ForeColor = &H80&
lblHttpFColor = &H80&
End Sub
Private Sub lblHttp_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
lblHttp.ForeColor = vbRed
lblHttp.Top = lblHttpTop + 20
End Sub
Private Sub lblMailto_Click()
ShellExecute hwnd, "open", lblMailto.Caption, vbNull, vbNull, 0
lblMailto.ForeColor = &H80&
lblMailtoFColor = &H80&
End Sub
Private Sub lblMailto_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
lblMailto.ForeColor = vbRed
lblMailto.Top = lblMailtoTop + 20
End SubPrivate Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
lblHttp.ForeColor = lblHttpFColor
lblMailto.ForeColor = lblMailtoFColor
If lblHttp.Top <> lblHttpTop Then lblHttp.Top = lblHttpTop
If lblMailto.Top <> lblMailtoTop Then lblMailto.Top = lblMailtoTop
End Sub将两个lable控制lblHttp和lblMailto放到一个frame1中,将它们的caption分别设为
http://xxx.xxx和mailto://[email protected]就行了。