TForm.Close和通过表单句柄关闭有什么区别?

时间:2013-02-12 16:14:21

标签: forms delphi winapi

我的应用程序有一个主要表单,我在该表单上有一个按钮来关闭/退出应用程序。目前,它通过调用Windows来关闭句柄来编写:

SendMessage(Handle, WM_CLOSE, 0, 0);

但我想知道使用中的伤害是什么:

formName.Close;

这里的正确用法是什么?有没有理由使用SendMessage?

1 个答案:

答案 0 :(得分:11)

他们完全一样。事实上,在Forms.pas中你找到了

procedure WMClose(var Message: TWMClose); message WM_CLOSE;

...

implementation

...

procedure TCustomForm.WMClose(var Message: TWMClose);
begin
  Close;
end;

显示WM_CLOSE消息只是转换为Self.Close

一般情况下,如果可以的话,你应该使用Close,因为那是更多的Delphi-ish和更短的。