マウスポインタが離れたか調べる
ここに載せてあるソースコードは、参考のために載せてあります
サンプルコードは、一番下にLZHとしてあります
Option Explicit Private Const CLOSETEXT = "×" '-------------------------------------- ' Form1 '-------------------------------------- 'フォームをロードしました Private Sub Form_Load() Picture1.AutoRedraw = True drawMyButton Picture1, 0, 0, 0, Text1.Text DoEvents Picture2.AutoRedraw = True Picture2.FontBold = True drawMyButton Picture2, 0, 0, 0, CLOSETEXT End Sub '-------------------------------------- ' Pictuer1 '-------------------------------------- 'ピクチャボックスでマウスボタンを押しました Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) drawMyButton Picture1, Button, X, Y, Text1.Text End Sub 'ピクチャボックスでマウスを移動しました Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) drawMyButton Picture1, Button, X, Y, Text1.Text End Sub 'ピクチャボックスの描画イベントが発生しました '(AutoRedraw=Falseのときのみイベントが発生します) Private Sub Picture1_Paint() drawMyButton Picture1, 0, 0, 0, Text1.Text End Sub '-------------------------------------- ' Pictuer2 '-------------------------------------- 'ピクチャボックスでマウスボタンを押しました Private Sub Picture2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) drawMyButton Picture2, Button, X, Y, CLOSETEXT End Sub 'ピクチャボックスでマウスを移動しました Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) drawMyButton Picture2, Button, X, Y, CLOSETEXT End Sub 'ピクチャボックスの描画イベントが発生しました '(AutoRedraw=Falseのときのみイベントが発生します) Private Sub Picture2_Paint() drawMyButton Picture2, 0, 0, 0, CLOSETEXT End Sub '-------------------------------------- ' Text1 '-------------------------------------- 'リストボックスでマウスを移動しました Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'マウスがリストボックスに乗っているか調べ 'それに応じてバックカラーを選択します If HoverCheck(Text1, X, Y) = True Then Text1.BackColor = RGB(230, 230, 255) Else Text1.BackColor = vbWindowBackground End If End Sub '-------------------------------------- ' Function '-------------------------------------- '指定したピクチャボックスにボタンを描画します Sub drawMyButton(objPicture As PictureBox, ByVal Button As Integer, ByVal X As Single, ByVal Y As Single, ByVal strText As String) Dim lngWidth As Single Dim lngHeight As Single Dim lngColHigh As Long Dim lngColLow As Long Dim strMsg As String Dim nTextDown As Integer '3Dラインを描画するときの 'ピクチャボックスの端の位置を代入します lngWidth = objPicture.ScaleWidth - Screen.TwipsPerPixelX lngHeight = objPicture.ScaleHeight - Screen.TwipsPerPixelY 'マウスがピクチャボックスに乗っているか調べ 'それに応じて色を選択します If HoverCheck(objPicture, X, Y) = True Then '左ボタンを押しているなら 'それに応じて色を選択します If Button = vbLeftButton Then lngColHigh = vb3DDKShadow lngColLow = vb3DHighlight nTextDown = 1 Else lngColHigh = vb3DHighlight lngColLow = vb3DDKShadow End If Else lngColHigh = vb3DFace lngColLow = vb3DFace End If '3Dラインを描画します objPicture.Cls objPicture.Line (0, 0)-(lngWidth, 0), lngColHigh objPicture.Line (0, 0)-(0, lngHeight), lngColHigh objPicture.Line (lngWidth, 0)-(lngWidth, lngHeight), lngColLow objPicture.Line (0, lngHeight)-(lngWidth, lngHeight), lngColLow 'ボタン名を中央に描画します strMsg = strText objPicture.CurrentX = objPicture.ScaleWidth ¥ 2 - objPicture.TextWidth(strMsg) ¥ 2 + nTextDown objPicture.CurrentY = objPicture.ScaleHeight ¥ 2 - objPicture.TextHeight(strMsg) ¥ 2 + nTextDown objPicture.Print strMsg End Sub |