MDIで、子ウィンドウを複数作成し、
そのうちの1つの子ウィンドウを最大化し、
「X」(閉じる)をクリック(親の「X]ではない)すると、
その子ウィンドウが閉じ、別の子ウィンドウが
最大化された状態で表示されます。
その別のウィンドウも「X]で閉じると、
また別の子ウィンドウも最大化されています。
最初に最大化された子ウィンドウ以外は
最大化されない状態で表示できないのでしょうか?
この動作はウィンドウズの標準動作ですね。変えない方がいいのでは?
正確には「どれか一つMDI子ウィンドウを最大化すると
すべての子ウィンドウが最大化される」ですね。
(Ctrl+F6で切り替えてみるとわかります)
逆に子ウィンドウを元のサイズに戻すか最小化すると、
すべての子ウィンドウが元のサイズに戻ります。
質問の要件を満たすだけなら、子ウィンドウが閉じられるときに
最大化されていたら元のサイズに戻してやればいいのでは。
それはさん、ありがとうございます。
Excelでも、最大化されたままですね。
tttさん、ありがとうございます。
以下のようにすると、うまく動作しました。
procedure TFormChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if IsZoomed(Self.Handle) = True then begin
SendMessage(Self.Handle,WM_SYSCOMMAND,WPARAM(SC_RESTORE and $FFF0),0);
end;
Action:=caFree;
end;
どちらにするか、考えてみます。
解決ということで、
どうもありがとうございました。
ツイート | ![]() |