正常的窗体样式下,点任务栏的图标会最小化,再点会恢复,样式改为bsNone后,点任务栏的图标没反应了,请教下各位朋友,这个该如何处理?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      PostMessage(Handle,WM_SYSCOMMAND,SC_MINIMIZE,0); //最小化
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      PostMessage(Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0); //最大化
    end;
      

  2.   

    用系統消息sc_maximize和sc_minimize..........
      

  3.   

    正常啊,你是不是有拦截WINDOWS消息的代码啊?在代码里没有默认继承?
      

  4.   


    不是吧,我的是Windows7 + D2010bsSizeable的情况下点任务栏会最小化的啊,设置成bsNone后点任务栏没有反应了。
      

  5.   

    特意新建了个空项目,代码就一行unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      BorderStyle := bsNone;
    end;end.
      

  6.   

    var
      nStyle: Integer;
    begin
      nStyle := GetWindowLong(Self.Handle, GWL_STYLE);
      nStyle := nStyle or WS_SYSMENU or WS_MINIMIZEBOX WS_MAXIMIZEBOX;
      SetWindowLong(Self.Handle, GWL_STYLE, nStyle);
    end;
      

  7.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      nStyle: Integer;
    begin
      Self.BorderStyle := bsNone;
      nStyle := GetWindowLong(Self.Handle, GWL_STYLE);
      nStyle := nStyle or WS_SYSMENU or WS_MINIMIZEBOX WS_MAXIMIZEBOX;
      SetWindowLong(Self.Handle, GWL_STYLE, nStyle);
    end;
      

  8.   

    有WS_SYSMENU会收不到WMNCHitTest消息,呵呵,也没具体钻研为啥,谢谢了。问题总算解决