[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/11/24(Thu) 11:09
投稿者名:つぼちゃん
Eメール:
URL :
タイトル:
Label上にマウスのカーソルが来たときに下線を引きたい
VB6です。
Label上にマウスのカーソルが来たときに下線を引き、
Label上からマウスのカーソルが離れたときに下線をなくしたいのですが、
前者はMouseMoveイベントでできるのですが、後者ができません。
VB.NetではMouseLeaveイベントでできるようですが。
ちなみに、以下のようにコードを書いたのですが、カーソルをLabel上から
遠ざける方向によって下線が消えなかったり、
近づける方向によって下線が惹かれなかったりします。

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If X >= Label1.Left And X <= Label1.Left + Label1.Width And _
       Y <= Label1.Top And Y >= Label1.Top - Label1.Height Then
        Label1.FontUnderline = True
    Else
        Label1.FontUnderline = False
    End If
End Sub

このような処理をVB6でやるにはどうするのがいいのでしょうか?

投稿時間:2005/11/24(Thu) 11:30
投稿者名:ダンボ
URL :http://homepage1.nifty.com/rucio/main/technique/InputChk2.htm
タイトル:
Re: Label上にマウスのカーソルが来たときに下線を引きたい
> VB.NetではMouseLeaveイベントでできるようですが。
そうなんですか。当然そういうイベントを付けるべきですよね。

VB6ではSetCaptureとReleaseCaptureを使えばよいです。結構Webにサンプルが見られます。

(参考例)
Public Function MouseMove(CNT As MSForms.CommandButton, ByVal X As Single, ByVal Y As
Single)

With CNT
    If X >= 0 And X < .Width And Y >= 0 And Y < .Height Then
        .BackColor = vbYellow Or &HC0C0C0
        SetCapture .hWnd
    Else
        .BackColor = &H8000000F
        ReleaseCapture
    End If
End With
End Function

投稿時間:2005/11/24(Thu) 12:03
投稿者名:つぼちゃん
Eメール:
URL :
タイトル:
Re^2: Label上にマウスのカーソルが来たときに下線を引きたい
ありがとうございます。
LabelはhWndプロパティがないようなので、テキストボックスでやります。


> > VB.NetではMouseLeaveイベントでできるようですが。
> そうなんですか。当然そういうイベントを付けるべきですよね。
>
> VB6ではSetCaptureとReleaseCaptureを使えばよいです。結構Webにサンプルが見られます。
>
> (参考例)
> Public Function MouseMove(CNT As MSForms.CommandButton, ByVal X As Single, ByVal Y As
> Single)
>
> With CNT
>     If X >= 0 And X < .Width And Y >= 0 And Y < .Height Then
>         .BackColor = vbYellow Or &HC0C0C0
>         SetCapture .hWnd
>     Else
>         .BackColor = &H8000000F
>         ReleaseCapture
>     End If
> End With
> End Function

投稿時間:2005/11/25(Fri) 14:25
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re^3: Label上にマウスのカーソルが来たときに下線を引きたい
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Label1.FontUnderline = True
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Label1.FontUnderline = False
End Sub

ではダメですか?

投稿時間:2005/11/25(Fri) 15:18
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^4: Label上にマウスのカーソルが来たときに下線を引きたい
> ではダメですか?

マウスの分解能にもよりますが、ポインタを高速で動かされると、
対応できない可能性が出てきますね。

投稿時間:2005/11/25(Fri) 17:44
投稿者名:つぼちゃん
Eメール:
URL :
タイトル:
Re^4: Label上にマウスのカーソルが来たときに下線を引きたい
> Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
>     Label1.FontUnderline = True
> End Sub
>
> Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
>     Label1.FontUnderline = False
> End Sub
>
> ではダメですか?

いやいや、全然OKです。ありがとうございます。
こんなに簡単にできるなんて...