在label_mousemove()中写改变字体的代码,在label所在的控件(如form)中写恢复字体的代码

解决方案 »

  1.   

    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
      

  2.   

    一个比较简单的解决方案:
    把Label放到Frame中(Frame要比Label大一点点)
    然后,Label的Mouse_Move事件中  “label上的字体发生变化”
    Frame的Mouse_Move事件中  “label上的字体恢复”
    这样,当鼠标移到Label上时,会触发Label的Mouse_Move事件而导致“label上的字体发生变化”,而当鼠标移走时会触发Frame的Mouse_Move事件而导致“label上的字体恢复”
    Good Luck! : )
      

  3.   

    楼上的方法有一点点的问题,因为在我鼠标迅速的移开时 就不会触发frame的mouse-move事件。不知道有没有更好的办法。
      

  4.   

    有。要用API函数。就可以实现了。
      

  5.   

    能不能具体一点告诉我 是用哪个api函数 方便的话 给一段原吗
      

  6.   

    你可以这样实现!通过对窗体的mousemove事件添加代码!
    你要写个函数功能是读取你的lable的(x0,y0,x1,y1)!
    把这个区域在窗体中所发生的响应写在窗体的mousemove事件就可以!
      

  7.   

    用label 的mousemove 改变。
    我喜欢用窗体的mousemove 来恢复。
      

  8.   

    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
     这是对按钮的,你将按钮换成标签就可以了。
      

  9.   


    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]就行了。
      

  10.   

    很简单,你只要在属性窗口改变TooTipText的值就可以了。