如何作出象QQ那样的程序,将对话框移到屏幕边缘就隐藏,鼠标移到屏幕边缘就显示?

解决方案 »

  1.   

    在双显示器模式下,QQ 在一个显示器上隐藏了,然后会在另外一个显示器出现,说明QQ只是把窗口用 MoveWindow 移出屏幕之外(没考虑到多显示器下屏幕坐标是连续的)
    ---------------
    不能学 qq 的做法。
      

  2.   

    easy
    隐藏了加一个变量bhide设定为true
    然后在onmousemove的时候if(bhide) 显示窗口
    不就解决了??
      

  3.   

    这个问题我解决过。
    首先是让窗口自动靠边
    然后是在初始化函数里SetTimer
    在OnTimer检查鼠标位置
    如果不在窗口内就用MoveWindow(注意不要全部移离窗口)显示嘛
    就是响应OnNcMouseMove来实现了如果你想要我给你源码
      

  4.   

    http://www.csdn.net/Develop/Read_Article.asp?Id=16593
    http://www.csdn.net/Develop/Read_Article.asp?Id=15693
    http://www.csdn.net/Develop/Read_Article.asp?Id=9487
      

  5.   

    http://www.csdn.net/Develop/Read_Article.asp?Id=16593
    http://www.csdn.net/Develop/Read_Article.asp?Id=15693
    http://www.csdn.net/Develop/Read_Article.asp?Id=9487
      

  6.   

    其实不用双显示器,用spy看看QQdialog的坐标不就行了
      

  7.   

    赫赫,其实,qq的做法也不是很苯,只是犯了一个小错误:没有把窗口真正变没有!如果是将窗口大小变为w:0 H:0不也可以么?
    关键是,不管你前台还是后台,隐藏后他都能通过鼠标移边显示,说明肯定有个hook程序再判断,而不仅仅是相应应用程序的mousemove消息,因为程序切换到后台后就失去对消息的捕获了
      

  8.   

    QQ并没有完全把窗口英藏(仔细观察可以发现)
    并且它的窗口始终在最上(可以用SetWindowsPos实现)
    完全没有必要使用hook程序来判断
    只要OnNcMouseMove就能触发它弹出