我有一个实用程序对话框(非模态和保持在顶部),即使是模态对话框,在使用应用程序时也应该始终可以访问它(想想在使用应用程序时可以用来记笔记的对话框)显示。
应用程序的其余部分无法更改。
是否可以?我该怎么办?
当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;
这将确保您的实用程序窗口永远不会被禁用。