当前位置:编程学习 > VB >>

如何在鼠标移动到上面时会自动弹出一个窗体,离开时又自动隐藏

如何在鼠标移动到上面时会自动弹出一个窗体,离开时又自动隐藏,就好象QQ的主界面一样,用VB代码如何写 这种方式最好是在From或者Picture控件上放置一个Frame或者Picture控件
现在假设Form上放Picture控件Pic1,Pic1设计时Visible属性设置为false,如果你希望当

鼠标移动到x1-x2 及y1-y2一个小范围时,显示Pic1,(最好Pic1能盖住(x1,y1)-(x2,y2)所在的区域,这样效果比较好)

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
 pic1.visible= x>x1 and x<x2 and y>y1 and y<y2 
 
End Sub
鼠标移上去,窗体恢复大小
鼠标移走,窗体缩小
关键是检测鼠标移走,QQ好像是通过鼠标钩子实现的 这个问题的关键在于如何判断鼠标进入显示区域,和离开显示区域的问题。
引用 3 楼 veron_04 的回复:
这个问题的关键在于如何判断鼠标进入显示区域,和离开显示区域的问题。



没有那么复杂,假设隐藏控件为A,父控件为P;假设开始时A是隐藏的,显示区域(P的(x1,y1)(x2,y2))鼠标事件属于父控件P,因为父控件的鼠标移动事件能触发MouseMove,简单判断后,就能显示隐藏的控件P,紧跟着显示控件A后,鼠标消息就送给了A,因此显示后不会触发P的mosemove;用户在A上进行操作;然后当鼠标移出A所在区域,则又对A进行隐藏。逻辑相当简单。 Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single)
Form2.Visible = True
End Sub
本帖最后由 bcrun 于 2012-02-29 20:46:57 编辑 http://www.m5home.com/bbs/thread-1425-1-1.html

[开源] VB6实现的自动停靠窗体

//

这个可以. 专门有个API 是关于鼠标监听的 监视是否移除这个区域
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,