MDI子窗体无法通过hide隐藏,会引起order错误,我想问下到底如何利用WIN32API函数达到MDI子窗体平滑隐藏和显示的目的,方便的话能写下Form的close事件的源代码。

解决方案 »

  1.   

    是子窗体的X啊,隐藏MDI子窗体
      

  2.   

    从来没有听说过MDIChild窗体可以隐藏的……或许是我孤陋寡闻
      

  3.   

    应该可以的吧~查过资料,有用API函数实现的,但源代码SO长
      

  4.   

    //转载http://xuhao.myrice.com/jq/vcl/129.htm
    //隐藏最小化MDI子窗口
    //在你的MDI子窗口单元写下面的代码type
      TfrmMyMDIForm = class(TForm)
      public
        procedure WMSize(var Msg: TWMSIZE); message WM_SIZE
      end;implementationprocedure TfrmMyMDIForm.WMSize(var Msg: TWMSize);
    begin
      if Msg.SizeType = SIZE_MINIMIZED then
        ShowWindow(Handle, SW_HIDE);
    end;//我再用ShowWindow(Handle,SW_RESTORE);显示,有兴趣试一试,
    不过窗口最小化还是有点小毛病,算是抛砖引玉
      

  5.   

    不知道我的理解是否错误试一下
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action:=
    end:=cafree;
      

  6.   

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action:=cafree;
      form1 := nil;
    end;