窗体最小化后,发送哪个消息使其回复原状?

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
      private
        procedure WMSysCommand(var msg: TMessage);message WM_SYSCOMMAND;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMSysCommand(var msg: TMessage);
    begin
      if msg.WParam = SC_MINIMIZE then
        Self.WindowState := wsNormal //处理状态
      else
       inherited;
    end;end.
      

  2.   

    不成功啊,窗体是被我这么隐藏的,ShowWindow(Application.Handle, SW_HIDE);点击托盘后,执行ShowWindow(Application.Handle, SW_SHOWNORMAL);想回复窗口但是发现窗体保持在最小化状态,必须手动点击才能回复原状态,用了楼上两位的办法均无效
      

  3.   

    不行啊,窗体还是在最小化状态。我再说清楚一点:
    我是捕捉的SC_MINIMIZE消息,在消息处理中加入了
    Inherited;
    ShowWindow(Application.Handle, SW_HIDE);
    点击托盘后执行:
    ShowWindow(Application.Handle, SW_SHOWNORMAL);
    这是窗体就保持在最小化状态了,必须点击以下才能恢复。该怎么办啊,发送哪个消息可以恢复窗体原状态?用PERFORM,SENDMESSAGE,POSTMESSAGE都行啊。
      

  4.   

    ShowWindow(Application.Handle, SW_SHOWNORMAL);
    然后 sendmessage(application.handle,WM_SYSCOMMAND,sc_restore,0);
      

  5.   

    你的问题是发送了前面的消息后,还需要点一下“还原”菜单项是不是?
    向窗口发送回车消息,即WM_KEYDOWN消息
      

  6.   

    PostMessage(Form1.Handle,WM_KEYDOWN,13);
      

  7.   

    Sorry,在此之前先要发送若干个向上键的消息,(就是按了这么多个向上键后,使选种还原菜单项)