親ウィンドウ全体ではなく、クライアント領域のみに適合する子ウィンドウを最大化するにはどうすればよいですか?親ウィンドウのメインメニューまたはその他のコントロールの下に子ウィンドウが表示されないようにしたくありません。
私はこのコードを持っています
procedure WMSIZE(var Msg: TMessage); message WM_SIZE;
procedure TForm2.WMSIZE(var Msg: TMessage);
begin
inherited;
if Msg.WParam = SIZE_MAXIMIZED then
begin
ShowWindow(Handle, SW_RESTORE);
Left := 0;
Top := 0;
Width := Form1.ClientWidth - 4; // The BORDER
Height := Form1.ClientHeight - 4;
end;
end;
しかし、それだけでは十分ではありません。ウィンドウは実際には最大化されていません。に変更SW_RESTORE
するとSW_MAXIMIZE
、子ウィンドウにバグが表示されます。