delphi如何防止MDI子项最大化?
在DelphiMDI应用程序中,当使用“最大化”按钮按下时,需要在Mainform客户端区域显示一个子窗口及其标题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
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;