如何获知窗体最小化,当按窗口右上角的-或点任务栏最小化

解决方案 »

  1.   

    截获WM_SYSCOMMAND消息。 
    窗体的类声明如下: 
    TForm1 = class(TForm) 
    private 
    { Private declarations } 
    public 
    { Public declarations } 
    procedure WMSysCommand(var Message: TWMSysCommand);message WM_SYSCOMMAND;//响应WM_SYSCOMMAND消息 
    end; WMSysCommand的实现如下: 
    procedure TForm.WMSysCommand(var Message: TWMSysCommand); 
    begin 
    Inherited;//调用先前的处理函数 
    if (Message.CmdType and $FFF0 = SC_MINIMIZE) then 
    ... //自己的处理 
    end; 
      

  2.   

    procedure TForm1.WMSysCommand(var Message: TWMSysCommand); 
    begin 
      inherited; 
      if (Message.CmdType=SC_MAXIMIZE) or (Message.CmdType=SC_SIZE) then//最大化 
      begin 
        ... 
      end 
      else if (Message.CmdType=SC_RESTORE) then//復原 
      begin 
       ... 
      end; 
    end; 
      

  3.   

    通过上面的方法拦系统的消息没有成功,不过我用
    applicationevent控件的onminimize的方法就成功了。
    这个控件在additional面板上.