拦截消息,获得最小化消息时,最小化主Form!

解决方案 »

  1.   

    procedure TLoginFrom.wndProc(var Msg: TMessage);
    begin
      if Msg.WParam =SC_MINIMIZE then
      ...
    end;
      

  2.   

    procedure TLoginFrom.wndProc(var Msg: TMessage);
    begin
      if Msg.WParam =SC_MINIMIZE then
      ...
    end;
      

  3.   

    1 :更改你的主窗;
    2 :在界面窗体中拦截最小化消息,
      if Msg.WParam =SC_MINIMIZE then
        SendMessage(主窗.handle,WM_SYSCOMMAND,SC_MINIMIZE,0)
    //给主窗发送最小化消息;
      恢复时可以控制主窗显示;
      

  4.   

    前面怎样声明,调用了什么unit?谢谢!
      

  5.   

    在主画面 先声明过程类型
    procedure Minimize(var M:TWMSYSCOMMAND);message WM_SYSCOMMAND;procedure TForm_Main.Minimize(var M:TWMSYSCOMMAND);
    begin
      if M.CmdType=SC_Minimize then
      ShowWindow(Application.Handle,SW_SHOWMINIMIZED)
      else
      inherited;
    end;
      

  6.   

    在CLASS里面重载WNDPROC函数
    procedure WndProc(var Msg:TMessage);override;
    procedure TFrm_Main.WndProc(var Msg: TMessage);
    begin
      inherited;  case Msg .Msg  of
        WM_SYSCOMMAND :
           begin
             case Msg .WParam  of SC_MINIMIZE :
                 ShowWindow(Application .Handle ,SW_HIDE );
             end;//end inner case
          end;//end begin
      end;//end outer caseend;
      

  7.   

    截取MAINFORM 的最小化消息,然后自己处理,这样应该可以~~
      

  8.   

    好像还是没有作用,当我最小化主界面时,处于隐藏状态的主form并没有获得最小化消息。
      

  9.   

    我是应该将主form最小化到托盘还是将主界面最小化到托盘?