delphi如何防止MDI子项最大化?

delphi如何防止MDI子项最大化?,delphi,mdi,childwindow,maximize-window,Delphi,Mdi,Childwindow,Maximize Window,在DelphiMDI应用程序中,当使用“最大化”按钮按下时,需要在Mainform客户端区域显示一个子窗口及其标题 Win32Check(Windows.GetClientRect(ClientHandle, aTRect)); MDIChild1.BoundsRect := aTRect; 功能 那么,当按下最大化按钮时,我们如何防止MDI子对象被最大化 我试着用电脑做这件事 procedure TChildText.WMSYSCOMMAND(var Message: TWMSYSCOMM

在DelphiMDI应用程序中,当使用“最大化”按钮按下时,需要在Mainform客户端区域显示一个子窗口及其标题

Win32Check(Windows.GetClientRect(ClientHandle, aTRect));

MDIChild1.BoundsRect := aTRect;
功能

那么,当按下最大化按钮时,我们如何防止MDI子对象被最大化

我试着用电脑做这件事

procedure TChildText.WMSYSCOMMAND(var Message: TWMSYSCOMMAND);
var
  aTRect:TRect;
begin
  inherited;
  case message.CmdType of
    SC_MAXIMIZE: 
      begin
        Win32Check(Windows.GetClientRect(MainForm.ClientHandle, aTRect));
        BoundsRect := aTRect;
      end;
  end;
end;

没有结果。

请显示完整的消息句柄。此处无法阅读。请删除评论并将该代码编辑到问题中。请注意格式,以便代码尽可能可读。目前问题中的代码是零碎的。这些细节是非常重要的;线,它的工作。谢谢。谢谢你的编辑。我想知道是否有对继承的处理程序的调用,因为这样用户就需要手动调整窗口的大小,以适应客户端区域@Honza。这样,使用最大化按钮“几乎”自动最大化窗口。这里的目标是稍微重新定义最大化的含义,而不是完全禁用它。如果这解决了您的问题,那么您可以使用
else继承,而不是
Exit
。在任何情况下,将0返回到
消息。结果
。您是对的。但今天我注意到,当MDIchild窗口最小化时,“最大化”按钮不响应。因此,我设置了message.CmdType:=SC\u RESTORE,而不是Exit命令。
procedure TChildText.WMSYSCOMMAND(var Message: TWMSYSCOMMAND);
var
  aTRect:TRect;
begin
  if message.CmdType = SC_MAXIMIZE then
  begin
    Win32Check(Windows.GetClientRect(MainForm.ClientHandle, aTRect));
    BoundsRect := aTRect;
    message.CmdType := SC_RESTORE;
  end;
  inherited;
end;