如和能实现如同QQ,在拖动到屏幕版边的时候窗口自动隐藏

解决方案 »

  1.   

    啊 这问题还是小问题?????你要碰到大问题不得难倒CSND一大片啊
      

  2.   

    我的想法是判断form位置,如果至顶或到两边就使form的高度或宽度为极小,然后在mousemove里恢复form的原始大小,可是具体方法不知道。也不知道想法是否正确。请高手指教
      

  3.   

    prok(slash           说的有理,不过没实践过。 听听大虾们的意见
      

  4.   

    要它自动隐藏好办,麻烦的是要它从新显示,必须监视鼠标的位置。可能要做hook。。麻烦。。
      

  5.   

    不用,判断窗口移动到屏幕边后,让窗口的高度为1像素,贴在屏幕边上,再在MouseMove事件中恢复窗口的大小就行了
      

  6.   

    to:Tenner(Tenner) 
    请问当你的程序已经不是当前激活程序并且窗口已经被隐藏的时候,怎么检测mousemove(或者说是所有的鼠标事件)???用timer么?????
      

  7.   

    隐藏并不是enable=false啊。把窗体大小设很小的话应该能检测到mousemove吧?
      

  8.   

    to:prok(slash)
    form1.height=100   '这是你要的值
    form1.width=100    '这是你要的值
      

  9.   


    if 对象.top=屏幕.top then
      对象.hide
    end if要使他出现可以在MouseMove事件中
     对象.showe看看行吗
      

  10.   

    试了判断form.top<0后可以实现隐藏。可是如何能一直使我的窗口一直处于激活状态呢?就是说类似与QQ,在我用其他程序的时候它也始终悬停在屏幕上
      

  11.   

    这个实现好像不易!相信应该要用到api了!
    关注中!
      

  12.   

    to:prok(slash)
    注意,“一直处于激活状态”和“用其他程序的时候它也始终悬停在屏幕上”是两个完全不同的概念,要达到后者的目的,用SetWindowPos,例如:
    Private Sub Command1_Click()
    retval = SetWindowPos(Me.hwnd, -1, 100, 100, 300, 300, &H40 Or &H20 Or 1)
    End Sub
      

  13.   

    http://tenner.myetang.com/hide.rar我写的一个例子,和QQ的效果一样,你可以看一下,就明白了