1、用重载窗口 CreateParams 方法显示非主窗口
procedure CreateParams(var Params: TCreateParams);override;
procedure Tform1.CreateParams(var Params:TCreateParams);
begin
inherited CreateParams(Params);
Params.WndParent := GetDesktopWindow;
end;显示保存对话框时会把主窗口也显示出来
2、用API显示非主窗口
procedure Tform1.FormCreate(Sender: TObject);
begin
SetWindowLong(self.Handle, GWL_EXSTYLE, WS_EX_APPWINDOW);
end;
打开多个非主窗口后,在任务栏上不能切换回主窗口
我的问题是:
怎么才可以把非主窗口显示在任务栏上,同时可以自由切换窗口,打开保存对话框时又不显示主窗口?请各位高手解答,谢谢!
procedure CreateParams(var Params: TCreateParams);override;
procedure Tform1.CreateParams(var Params:TCreateParams);
begin
inherited CreateParams(Params);
Params.WndParent := GetDesktopWindow;
end;显示保存对话框时会把主窗口也显示出来
2、用API显示非主窗口
procedure Tform1.FormCreate(Sender: TObject);
begin
SetWindowLong(self.Handle, GWL_EXSTYLE, WS_EX_APPWINDOW);
end;
打开多个非主窗口后,在任务栏上不能切换回主窗口
我的问题是:
怎么才可以把非主窗口显示在任务栏上,同时可以自由切换窗口,打开保存对话框时又不显示主窗口?请各位高手解答,谢谢!
首先分清是MDI还是SDI层次的窗口应用;
其次,分清窗口的主从关系。
我注意到你的 procedure Tform1.CreateParams(var Params: TCreateParams)函数中:
Params.WndParent := GetDesktopWindow; // 可能这句导致窗口的主从关系混乱,所有子窗口应当只有一个唯一的相同的Parent Window 。