这似乎只在IE6中发生。
我有一个用Delphi7编写的activex窗体。从IE6中的activex控件中打开的对话窗口显示在任务栏上-用户(出于某种原因)不希望对话框显示在任务栏中。
因此,我将对话的borderStyle设置为bsToolwindow。这将在任务栏中隐藏对话框,但也有一个副作用,即在窗口中的任务列表中隐藏IE,这意味着如果您使用Tab键离开,则无法返回到IE。
问:如何在任务栏中隐藏activex弹出对话框,但仍然在任务列表中列出IE6?
发布于 2011-02-16 23:49:57
将窗体的所有者窗口设置为activex窗体(或ie窗口)。你可以做到这一点。通过在创建窗体时将activex窗体作为所有者组件传递,并覆盖实例化窗体的CreateParams
:
// in the activex form's unit
procedure TActiveFormX.Button1Click(Sender: TObject);
var
f: TForm;
begin
f := TForm1.Create(Self);
f.BorderStyle := bsToolWindow;
f.Show;
end;
// in the dialog unit
type
TForm1 = class(TForm)
private
protected
procedure CreateParams(var Params: TCreateParams); override;
[...]
[...]
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := TCustomForm(Owner).Handle;
end;
https://stackoverflow.com/questions/5016683
复制相似问题