非主窗体最小化时,如何让其出现在任务栏,而不是屏幕的左下角?

lostmoon 2010-02-24 04:30:40
非主窗体最小化时,如何让其出现在任务栏,而不是屏幕的左下角?
...全文
230 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziyideshu 2010-02-26
  • 打赏
  • 举报
回复
基本上这样的情况,我很少遇到。
forestry98 2010-02-25
  • 打赏
  • 举报
回复
引用 2 楼 avan_lau 的回复:
由于delphi创建的form都是以application创建的隐藏窗口为父窗口,所以不会在task bar显示出来。显示在任务栏的是,那个隐藏窗口的。
除非这样做:
Delphi(Pascal) code
interfacetype
TChildForm= class(TForm)
...
protectedprocedure CreateParams(var Params: TCreateParams) ; override;
...

implementationprocedure TChildForm.CreateParams(var Params: TCreateParams) ;begin
inherited;

Params.ExStyle := Params.ExStyleor WS_EX_APPWINDOW;

Params.WndParent := GetDesktopWindow;end;



支持楼上吧,因为我也是这么做的。
金卯刀 2010-02-25
  • 打赏
  • 举报
回复
经过试验,可以直接修改标志。你可以根据此法,在适当的时机to do

procedure TForm1.Button1Click(Sender: TObject);
var
mf : TForm2;
begin
mf := TForm2.Create(nil);
SetWindowLong(mf.Handle,GWL_EXSTYLE,GetWindowLong(mf.Handle,GWL_EXSTYLE) or WS_EX_APPWINDOW);
mf.Show;
end;
金卯刀 2010-02-25
  • 打赏
  • 举报
回复
由于delphi创建的form都是以application创建的隐藏窗口为父窗口,所以不会在task bar显示出来。显示在任务栏的是,那个隐藏窗口的。
除非这样做:

interface

type
TChildForm = class(TForm)
...
protected
procedure CreateParams(var Params: TCreateParams) ; override;
...

implementation

procedure TChildForm.CreateParams(var Params: TCreateParams) ;
begin
inherited;

Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;

Params.WndParent := GetDesktopWindow;
end;

fang 2010-02-25
  • 打赏
  • 举报
回复
没弄明白意思,详细说下。
相关推荐
发帖
Windows SDK/API

1177

社区成员

Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
帖子事件
创建了帖子
2010-02-24 04:30
社区公告
暂无公告