这似乎只发生在IE6中
我有一个用Delphi 7编写的activex表单。在IE6中的activex控件中打开的对话窗口显示在任务栏上 - 用户(出于某种原因)不希望对话框显示在任务栏中。
所以我将对话框的borderStyle设置为bsToolwindow。这隐藏了任务栏中的对话框,但也有(侧面)效果将IE隐藏在Windows中的任务列表中,这意味着如果您选中,则无法< alt> Tab返回IE。
问题:如何隐藏任务栏中的activex弹出对话框,但仍然在任务列表中列出了IE6?
答案 0 :(得分:0)
将表单的所有者窗口设置为activex表单(或者可能是ie窗口)。你可以实现这个f.i.通过在创建表单并覆盖实例化表单的CreateParams
时将activex表单作为所有者组件传递:
// 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;