就像qq的主窗口那样,搜索过了dwExStyle := GetWindowLong(Application.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE, dwExStyle OR WS_EX_TOOLWINDOW
AND NOT WS_EX_APPWINDOW);实验证明没有效果,放在project里不行,formshow里也不行 ShowWindow(Application.Handle, SW_HIDE);在project里不行,formshow里面可行,但程序一旦动态创建窗口并打开的话,任务栏按钮又出来了……我该怎么做才能做得像qq主窗口那样?
请指教
SetWindowLong(Application.Handle, GWL_EXSTYLE, dwExStyle OR WS_EX_TOOLWINDOW
AND NOT WS_EX_APPWINDOW);实验证明没有效果,放在project里不行,formshow里也不行 ShowWindow(Application.Handle, SW_HIDE);在project里不行,formshow里面可行,但程序一旦动态创建窗口并打开的话,任务栏按钮又出来了……我该怎么做才能做得像qq主窗口那样?
请指教
解决方案 »
- 关于ExpressQuantumGrid分组
- delphi dbgrid中如何多选,请给指点一下,急呀,谢谢
- 急!!!!!关于ADOQuery的问题,在线等待!!!
- 为什么会有cound't create output file"d:\使用TTable控件\uni3.dcu?
- 谁有最新的Developer Express Inc系列 For bcb6以及汉化?
- ShowModal如何使用
- 急~~~
- 请问怎么去掉报表窗体上的最小化按钮?去掉窗体上的不行?报表的还在!UP有分!!!
- 谁能告诉我DBISAM控件怎样创建数据库,来者有分!
- DELPHI后台线程中移记录之后。。。。求助。
- fastreport如何实现双面打印
- 关于指向数据的指针
begin
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);end;end.projectprogram Project1;uses
Forms,
windows,
Unit1 in 'Unit1.pas' {Form1};{$R *.res}
var
dwExStyle:dword;
begin
Application.Initialize;
// Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Application.MainFormOnTaskbar:=False;
(D7及以前版本不支持)
隐藏一个其他正在运行中的程序的任务栏图标,要么使用showwindow(handle,sw_hide),或者使用
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW),当然方法是非常有效的, 但是,如果需要被隐藏的程序是Delphi开发的,怎么就没法隐藏其任务栏图标了,只隐藏了窗口!
7以下的 不支持
我是D7我这是可以的procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
end;
小弟的是2007
Application.MainFormOnTaskbar:=False;
也试过了,不行小弟的工程只有一个线程,代码就这么简单(2楼)
ShowWindow( Application.Handle, SW_HIDE );
ShowWindow( Application.Handle, SW_HIDE );
不行?不会吧,应该可以的
在project里不行,formshow里面可行,但程序一旦动态创建窗口并打开的话,任务栏按钮又出来了……
我2楼就贴出了我测试工程的所有代码了,这个情况下是隐藏不了任务栏按钮
然后顶楼里面关于动态创建窗口的那个formshow代码,确实会再出现任务栏按钮,而且每次formshow触发的时候,任务栏都会先出现按钮,然后一闪之后消失
unit1,主窗口
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
// SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
// ShowWindow( Application.Handle, SW_HIDE );
// SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) and not WS_EX_TOOLWINDOW);
end;procedure TForm1.FormShow(Sender: TObject);
begin
// SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
// ShowWindow( Application.Handle, SW_HIDE );//看这里,这里在Application.MainFormOnTaskBar := false;或如下注释掉Application.MainFormOnTaskBar := true;的时候起作用,也确实把任务栏按钮隐藏了,但只要最小化窗口之后又在出现任务栏按钮
//其他注释的语句无论怎么组合都不能起作用
end;end.
project
program Project1;uses
Forms,
windows,
Unit1 in 'Unit1.pas' {Form1};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
// Application.MainFormOnTaskBar := true; Application.Run;
end.麻烦大家研究一下,难道ide的版本之间差异真的那么大么?
begin
ShowWindow( Application.Handle, SW_HIDE );
end;从additional上拉个ApplicationEvents1 放到窗体上,ApplicationEvents1的OnMinimize事件中选择FormShow这个过程关心你一下,最小化后任务栏上也没有了,你可怎么把它弄出来哩 难道再定义个热键sw_normal 纯粹折腾弟兄们
回20楼:弄出来的话用trayicon就好了,这个没事关于和trayicon,他里面有个hidetaskbaricon的函数,他估计也是调用了ShowWindow( Application.Handle, SW_HIDE );这句,但他说明里面说当有动态窗口或二级窗口创建的时候,任务栏按钮还是会出现,这是windows的默认行为这我就不解了,为什么qq的窗口就能做到?