当MDI子窗体最大化时捕获Delphi MDI子最小化事件

基尔帕特里克

我需要一些帮助来尝试在最大化时捕获 MDI 子窗体的最小化事件。

当单击下图中红色圈出的按钮时表单未最大化时,我能够捕获最小化/恢复/最大化事件。

MDI子项

我使用 WMSysCommand 捕获上述事件:

procedure TMDIChildForm.WMSysCommand(var Msg: TWMSysCommand);
begin
  if Msg.CmdType = SC_MINIMIZE then
  begin
    //my code here
  end;
end;

当我尝试在 MDI 子窗体最大化时使用 WMSysCommand 捕获相同的事件并单击下图中红色圈出的按钮时,它不会调用此代码。

最大化 MDI 子级

无论我尝试过什么,我都未能成功捕捉到这些事件。如果有人能指出我正确的方向,我将不胜感激。谢谢你。

雷米勒博

当我尝试时,对我来说效果很好:

type
  TMDIChildForm = class(TForm)
  private
    { Private declarations }
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  public
    { Public declarations }
  end;

procedure TMDIChildForm.WMSysCommand(var Msg: TWMSysCommand);
begin
  inherited; // <-- ADD THIS!!
  if Msg.CmdType = SC_MINIMIZE then
  begin
    // code here
  end;
end;

WMSysCommand() 捕捉SC_MINIMIZE每当MDI子被最小化,不管以前是否最大化或不会如预期的通知。

确保TMDIChildForm.WMSysCommand()调用inherited(如上所示)将WM_SYSCOMMAND消息传递给默认处理程序,以便 Windows 有机会处理它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果 MDI 子窗口最大化,则 MDI 父窗口高度会在还原时缩小(最小化/最大化后)

来自分类Dev

在MDI上安排最小化的子窗口

来自分类Dev

禁用或删除MDI子窗体最小化和还原操作

来自分类Dev

禁用或删除MDI子窗体,以最小化和还原操作

来自分类Dev

如何防止MDI文档被最小化

来自分类Dev

什么事件用于最大化/最小化?

来自分类Dev

当 mdi 子项最大化时,Winforms 删除控制框项目

来自分类Dev

无法将子窗体居中以最大化父级

来自分类Dev

WPF MDI最大化框

来自分类Dev

WPF MDI最大化框

来自分类Dev

标签页未在最小化/最大化时调整大小

来自分类Dev

c#窗体最小化/最大化按钮消失了吗?

来自分类Dev

WinForm“全局”捕获“仅”MDI 子窗体的异常

来自分类Dev

MDI子窗体的大小控制

来自分类Dev

MDI子项在创建时未最大化

来自分类Dev

当QMainWindow未最大化时,子窗口小部件将丢失

来自分类Dev

最小化盒子和最大化对象的算法

来自分类Dev

删除最小化和最大化按钮

来自分类Dev

卸下意见最小化/最大化按钮

来自分类Dev

或工具最大化/最小化OR / XOR

来自分类Dev

如何最小化启动程序,并最大化还原?

来自分类Dev

FVWM的Windows按钮(最大化最小化...),主题

来自分类Dev

WPF最小化和最大化

来自分类Dev

最小化和最大化<div>

来自分类Dev

最小化最大化窗口后偏移鼠标

来自分类Dev

最小化最大化不起作用

来自分类Dev

自定义最大化、最小化按钮

来自分类Dev

在窗体的标题栏上处理鼠标悬停-在工具提示中显示最小化MDI子项的标题

来自分类Dev

如何从“ MDI父母”的标题栏中删除“最大化的MDI子女”的名字?

Related 相关文章

热门标签

归档