VB如何判断鼠标指针是否指着按钮

我想自己制作按钮,用一个标签控件,鼠标指向它时背景为绿色,点击它为黄色,鼠标不指向它时为红色。(就是跟按钮一样了,只不过用代码体现)其实我最关心的是如何判断鼠标指针是否指... 我想自己制作按钮,用一个标签控件,鼠标指向它时背景为绿色,点击它为黄色,鼠标不指向它时为红色。(就是跟按钮一样了,只不过用代码体现)其实我最关心的是如何判断鼠标指针是否指着它,因为这是自制按钮的关键。谢谢! (就是按钮效果啦!用form1_mousemove是不行的) 展开
 我来答
lxe121976
2009-12-25 · TA获得超过1022个赞
知道小有建树答主
回答量:682
采纳率:68%
帮助的人:254万
展开全部
鼠标指向它时背景为绿色,在Label1的MouseMove事件设置其背景色为绿。
点击它为黄色,这句不好理解。如果是鼠标点下时改变的话,应在Label1的MouseDown事件中设置Label1的背景色,但放开鼠标时又会恢复为绿色。
不指向时为红色,可以在Form1的MouseMove事件中设置Label1的背景色为红。

“其实我最关心的是如何判断鼠标指针是否指着它”,很简单,判定指着它就是Label1自己的MouseMove事件,判定没有指着它,就是Form1的MouseMove事件
郜佩厍歆然
2019-02-15 · TA获得超过3806个赞
知道大有可为答主
回答量:3171
采纳率:28%
帮助的人:181万
展开全部
用MouseMove事件和mousedown事件来定义就可以了啊。
代码如下:
Private
Declare
Function
SetCapture
Lib
"user32"
(ByVal
hwnd
As
Long)
As
Long
Private
Declare
Function
ReleaseCapture
Lib
"user32"
()
As
Long
Private
Sub
Command1_MouseDown(Button
As
Integer,
Shift
As
Integer,
X
As
Single,
Y
As
Single)
Label1.BackColor
=
RGB(255,
255,
0)
End
Sub
Private
Sub
Command1_MouseMove(Button
As
Integer,
Shift
As
Integer,
X
As
Single,
Y
As
Single)
SetCapture
Command1.hwnd
If
X
>
0
And
X
<=
Command1.Width
And
Y
>
0
And
Y
<
Command1.Height
Then
Label1.BackColor
=
vbGreen
Else
Label1.BackColor
=
vbRed
ReleaseCapture
End
If
End
Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1304d44
2009-12-25 · TA获得超过449个赞
知道小有建树答主
回答量:896
采纳率:100%
帮助的人:213万
展开全部
form1_mousemove?
object.name is form1?
if object.name is not form1 then
private sub object.name_mousemove()
object.name.backcolor =green

end if
private sub object.name_click()
object.name.backcolor=yellow
end sub
private sub object.name_lostfocus()
object.name.backcolor=red
end sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QSDDZ
2009-12-25 · TA获得超过1049个赞
知道小有建树答主
回答量:621
采纳率:50%
帮助的人:549万
展开全部
用控件的MOUSEMOVE事件
如 Label1_MouseMove

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.BackColor = vbRed
End Sub

Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.BackColor = vbYellow
End Sub

Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.BackColor = vbGreen
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.BackColor = vbGreen
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
取名字严重难
2009-12-25 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2081
采纳率:33%
帮助的人:864万
展开全部
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.BackColor = RGB(255, 255, 0)
End Sub

Private Sub Label1_DblClick()
Label1.BackColor = RGB(0, 0, 0)
Label1.BackColor = RGB(0, 255, 0)
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.BackColor = RGB(255, 0, 0)
End Sub
'单击事件可能伴随着MOUSEMOVE所以改成双击,颜色值你自己修改下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式