6

我找到了两种捕捉 onMinimize 事件的方法。

第一:在 FormResize 事件中:

if MyForm.WindowState = wsMinimized then ......

第二:像这样声明消息处理程序:

procedure WMSize(var Msg: TMessage); message WM_SIZE;

接着:

procedure TForm57.WMSize(var Msg: TMessage);
begin
  if Msg.WParam  = SIZE_MINIMIZED then ....
end;

哪种方式更好?!

4

2 回答 2

5

OnResize被触发以响应相同的消息 ( WM_SIZE)。除非您需要在 VCL 处理消息之前做出反应(更新滚动条、对齐控件等),否则您不需要附加消息处理程序。否则,请务必在inherited调用之前处理它(您的示例中缺少它)。

于 2014-02-18T18:10:08.370 回答
1

第二个更好。因为 WindowState 不一定是 wsMinimized。

于 2014-05-30T22:19:27.233 回答