能不能做到像影音传输带那个小窗口一样,始终在最前面,而且点击我的桌面也不会下来。谢谢!

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      SetWindowPos(handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_SHOWWINDOW)
    end;
      

  2.   

    就设定FORM的FormStyle属性为fsStayOnTop就得了吧
      

  3.   


    formstyle:=fsStayOnTop //这个窗口有闪烁,效果不是很好
    或者是:
    SetWindowPos(handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_SHOWWINDOW)
    //建议使用这个,没有闪烁,效果好,我一直用这个,推荐!
      

  4.   

    goease(我爱kk):要把你的窗体置于所有窗体的最最最最上面,包括桌面
    怎么做到这一点呢?
      

  5.   

    TfrmMain = class(TForm)
       ...
       ...
       ...
      public
        { Public declarations }
        procedure CreateParams(var Params: TCreateParams); override; //在你的窗体中重载
      end;procedure TfrmMain.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      Params.EXStyle := Params.ExStyle or WS_EX_TOOLWINDOW;
      Params.WndParent := GetDesktopWindow; // 重新定义Parent对象句柄,看你的需要了。
    end;
      

  6.   

    奇怪,我在做“我的工具箱”(http://www.skycn.com/soft/15205.html)用的就是楼上的方法,楼主怎么说不行?问题是你的那个小窗口是不是主窗口?如果不是,你就应象jacky_shen(jacky)所说的那样重新设定该窗口Parent对象句柄。或者VeiwSource后这样:
     //Application.CreateForm(TfrmXX, frmXX);//把这句注释掉,用下面两句替之
     frmXX:=TfrmXX.CreateParented(GetDesktopWindow());
      frmXX.Show;
     
      

  7.   

    如果是这样:Form.FormStyle:=fsStayOnTOp;好像OpenDialog这样的窗口就能在它的上面!
      

  8.   

    liuzj2000():你那个工具箱很好玩啊,点显示桌面也不下来。怪了,我就一个主窗体,什么也没加,就把Form.FormStyle设成fsStayOnTOp,在点显示桌面后主窗体就不见了,why?能给指点一二吗?
    jacky_shen(jacky):不好意思,我现在用的是别人的机子,没有delphi,明天调完后再给分,先谢谢啦。
    Sunniness(笨鸟):这个好像就是这样吧,你可以把那些下载软件的监视窗口拖到IE浏览器的文件菜单下面,然后点一下文件菜单,弹出的下拉菜单就能覆盖小窗口了。^_^
    我现在只希望实现该窗体(最好不是主窗体)置顶,然后点击显示桌面不消失就行。
      

  9.   

    liuzj2000():忘了一个问题了,当你点击插入网址时(那是个模态窗体吧),出现的窗体把主窗体给覆盖了,这是你故意取消了主窗体的fsStayOnTOp属性吗?
      

  10.   

    self.WindowState:=wsmaximized;
    SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
      

  11.   

    jacky_shen(jacky)斑竹啊,CSDN怎么老出这种问题啊,每次给完分后经常出错,一方面我给了分另一方面我的帮助人却得不到分,这样下去岂不是既伤害了给我帮助人的感情,无形之中又影响了我的信誉值吗!谢谢!
    郁闷!