不在alt+tab显示,但程序窗口仍显示,也不在任务栏显示按钮,怎么实现?

解决方案 »

  1.   

    在编程的过程中,有时想让程序的任务栏图标隐藏起来,我们通常的方法是添加代码Application.ShowMainForm:=false;或使用 self.hide;来实现,这样虽然能让任务栏图标不出现,但是把主窗体也给藏起来了,有什么办法可以让只任务栏图标不出现呢?今天在上网偶然发现了一个方法,可以解决这个问题。那就是将应用程序窗口设为Tool Window来移走程序的任务栏图标(QQ就是这种,你把登陆界面最小化就能看出他的不同之处了),Tool windows永远不会有任务栏图标。但是当应用程序窗口成为一个Tool Window后,它将不出现在Alt-TAB程序列表中,也就是不能使用Alt-TAB切换到该窗口。要实现应用程序窗口为Tool Window ,可以调用API函数GetWindowLong和 SetWindowLong来完成。delphi代码如下:program hidepro;uses
       Forms,windows,
       main in 'main.pas' {Form1};{$R *.res}var
       dwExStyle : DWORD;
    begin
       dwExStyle := GetWindowLong(Application.Handle, GWL_EXSTYLE);
       dwExStyle := dwExStyle + WS_EX_TOOLWINDOW;
       SetWindowLong(Application.Handle, GWL_EXSTYLE, dwExStyle);   Application.Initialize;
       Application.CreateForm(TForm1, Form1);
       Application.Run;
    end.