当 OnMouseMove 时:
如果在本窗口内部,
    设置窗体大小,并 SetCapture。
如果 WindowFromPoint 发现鼠标在别的窗口上  或 鼠标在本窗口外部,
    恢复窗体大小,并 ReleaseCapture。
这样可以吗?

解决方案 »

  1.   

    用两个定时器,平常把窗体的TOP或LEFT设成-TOP+1或-LEFT+1,当窗体接到鼠标MOVE事件时,第一个定时器生效,窗体的LEFT或TOP逐渐增加,同时另一个定时器生效,但如果鼠标在窗体上有MOVE时间就清除他,第二个定时器事件发生后,同上相反,LEFT或TOP减小,直到-LEFT+1或-TOP+1
      

  2.   

    “但如果鼠标在窗体上有MOVE时间就清除他,第二个定时器事件发生后,同上相反,LEFT或TOP减小,直到-LEFT+1或-TOP+1”,这话怎么解释呢?
      

  3.   

    你可以用事件来触发如 button的 onclick事件当时间触发时你可以动态生成一个控件如panel
    并把他的parent属性设置为本窗体,在重新设置窗体大小,应该可以的。试一下吧
      

  4.   

    其实,你可以用到系统的AppBar功能进行编程!主要用到的API为:SHAppBarMessage.它用于创建一个桌面工具条,如同Office的一样。Windows的开始菜单就是用它进行编程的。
      

  5.   

    最简单,使用MoveWindow,在delphi里面,直接改变
    显示:
    for i = 0 to 100 do
    form1.top := form1.top + 1;
    隐藏的时候,--
    等等,不就行了。