SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

解决方案 »

  1.   

    SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
      

  2.   

    procedure TForm2.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      
      Params.WndParent := 0;
    end;
    你试一试这个方法;
    这是在非主窗体中加的;就是你想显示在任务栏的窗体里加的;声明:
     procedure CreateParams(var Params: TCreateParams); override ;
      

  3.   

    我想像一般的windows窗口一样可以随时缩小或还原,所以是不是应该在最小化窗体时触发这个事件呢?那么最小化窗体的事件又是什么?
      

  4.   

    自己写一个消息函数,截取窗口的  WM_SYSCOMMAND  消息,判断是否 SC_MINIMIZE 记得过滤其他的消息和调它的处理函数
      

  5.   

    怎样截取窗口的 WM_SYSCOMMAND 消息呢?我应该在什么事件中向系统发送自定义的消息呢?
      

  6.   

    Application.Minimize
    只能将窗口最小化于屏幕的左下角,而不是最小化于任务栏上
      

  7.   

    yes ,it is so easy.
      

  8.   

    这是什么啊,答的乱七八糟,看好人家问的是什么啊。
    如果你要在窗体最小化的时候有所动作,就要拦截系统消息;
    比如
    procedure WMSYSCOMMAND (var msg:TMESSAGE);message:WM_SYSCOMMAND ;
    ...
    procedure TForm1.WMSYSCOMMAND (var msg:TMESSAGE);
    begin
    inherited;
    if Message.CmdType and $FFF0 = SC_MINIMIZE then
     begin
      Application.Minimize;
      ...
     end; 
    end;
    没有Delphi的IDE环境,应该不会有太大出入,请自行验证。
    网上有许多搜索引擎的,自己搜一下,会有更大收获的。
      

  9.   

    抱歉,真的有错误了。
    if Message.CmdType and $FFF0 = SC_MINIMIZE then 
    应该改为
    if msg.CmdType and $FFF0 = SC_MINIMIZE then