Delphi - 如何控制TOpenDialog的Z顺序

Bil*_*ven 3 delphi delphi-2007

我有一个模式对话框,使用以下内容创建:

procedure TFormCompose.createParams(var Params: TCreateParams);
begin
     inherited createParams(Params);
     with Params do begin
          exStyle:=exStyle or WS_EX_APPWINDOW;
          wndParent:=getDesktopWindow;
     end;
end;
Run Code Online (Sandbox Code Playgroud)

在这种形式中,我创建了一个TOpenDialog实例.当它打开时,它会在主应用程序窗口后面发送我的第一个模态对话框.

有没有办法让TOpenDialog打开而不影响模态对话框的Z顺序?

谢谢!

Ken*_*ite 5

您使用的是哪个版本的Delphi?Delphi 2007及以上添加了一个重载的TOpenDialog.Execute(ParentWnd:HWND); 调用Execute()时,将模态对话框的句柄作为ParentWnd传递可能有所帮助.

为了将来参考,请确保指定哪个版本的Delphi.例如,适用于Delphi 2009的答案对您来说没有多大用处,如果您使用的是Delphi 5,那么提供答案的人将浪费时间.