如何在鼠标移动到上面时会自动弹出一个窗体,离开时又自动隐藏,就好象QQ的主界面一样,用VB代码如何写

解决方案 »

  1.   

    这种方式最好是在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
      

  2.   

    没有那么复杂,假设隐藏控件为A,父控件为P;假设开始时A是隐藏的,显示区域(P的(x1,y1)(x2,y2))鼠标事件属于父控件P,因为父控件的鼠标移动事件能触发MouseMove,简单判断后,就能显示隐藏的控件P,紧跟着显示控件A后,鼠标消息就送给了A,因此显示后不会触发P的mosemove;用户在A上进行操作;然后当鼠标移出A所在区域,则又对A进行隐藏。逻辑相当简单。
      

  3.   

    Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single)
    Form2.Visible = True
    End Sub
      

  4.   

    本帖最后由 bcrun 于 2012-02-29 20:46:57 编辑
      

  5.   

    http://www.m5home.com/bbs/thread-1425-1-1.html[开源] VB6实现的自动停靠窗体//这个可以.
      

  6.   

    专门有个API 是关于鼠标监听的 监视是否移除这个区域