11

我有一个实用程序对话框(非模态和保持在顶部),即使是模态对话框,在使用应用程序时也应该始终可以访问它(想想在使用应用程序时可以用来记笔记的对话框)显示

应用程序的其余部分无法更改。

是否可以?我该怎么办?

4

1 回答 1

18

ShowModal被调用时,所有现有的顶级窗口都被禁用。这就是模态的工作方式。如果你有一个交互合理的窗口,你只需要再次启用它。

例如,您可以将其添加到实用程序窗口:

type
  TMyUtilityForm = class(TForm)
  protected
    procedure WMEnable(var Message: TWMEnable); message WM_ENABLE;
  end;
....
procedure TMyUtilityForm.WMEnable(var Message: TWMEnable);
begin
  if not Message.Enabled then
    EnableWindow(Handle, True);
  inherited;
end;

这将确保您的实用程序窗口永远不会被禁用。

于 2012-10-18T14:43:35.550 回答