我用RxLib的RxTrayIcon来将程序的图标放在托盘区,可是怎样令程序运行时任务栏里也不显示图标?(40分)

  • 主题发起人 主题发起人 Hell
  • 开始时间 开始时间
多放一个Tappeents这也是rxlib的控件,在它的onminimize事件中添加代码
if NewStyleControls then ShowWindow(Application.Handle, SW_HIDE);
 
我已经加了,最小化时的确能隐藏任务栏里的图标,可是运行时依然显示,我想让程序
运行时,任务栏里也不显示它的图标,换言之,它的图标只在托盘区出现!
 
哦,是我误会了这也简单,你在form的onshow事件中添加代码
ShowWindow(Application.Handle, SW_HIDE);
 
谢谢~!
使用其它控件onminimize行为让Size大了点,而且还需要在onminimize、恢复窗体和onshow
里添加ShowWindow(Application.Handle, SW_HIDE)代码,有没有方法让任务一直都不出现
程序图标的行为?
或者可以不利用其它控件的onminimize行为的办法?
 
我想如果用Ahm的TAhmAppmanager可能会更方便些。
 
在FormCreate里加入
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
 
加了,可是最小化时,会缩小在屏幕左下方!
 
其实我感觉CoolTrayIcon比RxLib的这个东东好用。
 
CoolTrayIcon 有点点小bug
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
AppEvent, RXShell;

type
TForm1 = class(TForm)
RxTrayIcon1: TRxTrayIcon;
AppEvents1: TAppEvents;
procedure AppEvents1Minimize(Sender: TObject);
procedure RxTrayIcon1DblClick(Sender: TObject);
procedure RxTrayIcon1Click(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.AppEvents1Minimize(Sender: TObject);
begin
if NewStyleControls then ShowWindow(Application.Handle, SW_HIDE);
end;

procedure TForm1.RxTrayIcon1DblClick(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_RESTORE);
end;

procedure TForm1.RxTrayIcon1Click(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbRight then Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;

end.
 
多人接受答案了。
 
后退
顶部