代码?不是说了吗?但我觉得自己的方法应该错了,一个被hide了的窗口,是不能触发onmousemove
事件的!还得向各位请教呀:]

解决方案 »

  1.   

    不能在ONPAINT中写HIDE, 因为SHOW也会触发ONPAINT事件;仔细看QQ的窗口,并没有完全隐藏,而是留下一部分,
    因此只要运用ONMOUSEMOVE配合MOUSE的坐标设置窗口的大小即可
      

  2.   

    to  szchengyu(cy) 
    兄弟说的很有道理呀,是不是在窗口的oncreate事件中将其尺寸设得很小,再在该窗口的
    onmousemove事件重新调整它的大小?
      

  3.   

    yeah,除ONMOUSEMOVE外,还要............
      

  4.   

    试过了还是不行!!窗口的borderstyle属性已设为bsnone或者bsdialog,
    onmousemove事件是触发了,窗口也变大了,可鼠标移走后,怎么让窗口又变成"一线天"的样子呢??
    好像没有鼠标离开窗口的事件呀??!!!
      

  5.   

    其实QQ的窗体并没有hide,而是变得很小,不信你仔细观察屏幕边缘就知道了
      

  6.   

    QQ的这个功能是HOOK实现的,
    等我去试试先
    (猜的,错了不要怪我,谁谁谁!别扔鸡蛋)
      

  7.   

    to Taken(铁拳);
    我也知道它并没有hide了:]
      

  8.   

    Hide以后 还能激发Onshow事件吗?
    你再看看,QQ并没有全部隐藏,只是把窗口大小改变了
      

  9.   

    我不会用CM_MOUSEENTER /  CM_MOUSELEAVE,但看了源代码,
    DELPHI其实也是在空闲的时候检测鼠标的位置来处理以上两个消息的以下的代码应该可以,不知还有没有更好的办法unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
        procedure MYIdle(Sender: TObject; var Done: Boolean);
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.MYIdle(Sender: TObject; var Done: Boolean);
    var
      p: TPoint;
    begin
      GetCursorPos(p);
      if (p.x < left - 5) or (p.x > left + width + 5) or (p.y < top) or (p.y > top + height) then
      begin
        height := 3;
        borderstyle := bsnone;
        Done := true
      end else
      begin
        Done := false;
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      height := 2;
      Application.OnIdle := MyIdle;
    end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if (y = 0) or (y = 1) then
      begin
        height := 200;
        borderstyle := bsSizeable;
      end;
    end;end.
      

  10.   

    是呀,我已说过自己以前的想法是错的了:]
    为什么大家还水放过我??
    to xzgyb(老达摩):
    CM_MOUSEENTER,CM_MOUSELEAVE好像不是windows的消息吧?我在d5带的sdk中没有找到相关帮助
    说明,
    继续关注
      

  11.   

    非常感谢szchengyu(cy)!!
    你的代码我等下再看
      

  12.   

    我试做了QQ的窗口,基本上已经实现了窗体的模仿,但是还没有任何功能,如果要留下你的mail;
      

  13.   

    to:thygw(注册表错误)
      能给我一份吗?[email protected]
      

  14.   

    哈哈,差点出过好机会了:]
    [email protected]
      

  15.   

    TO: thygw(注册表错误)  我也要:[email protected]
      

  16.   

    w~~~~~信件没有收到
    TO: thygw(注册表错误)
    你发了没??
    如果真的能发,请e到[email protected]