如何消失?(50分)

  • 主题发起人 主题发起人 netpuff
  • 开始时间 开始时间
N

netpuff

Unregistered / Unconfirmed
GUEST, unregistred user!
程序如何在运行时在windows任务栏消失,最小化也一样?
如何向金山词霸一样,驻留在时钟所在的区域。
不要叫我去查*.*我怕麻烦;直接给答案吧!!!
 
加上它:

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

如果管用就快给钱!
 
这么慌着要钱干嘛?
 
穷慌了!
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
const

NIM_ADD=0;
NIM_MODIFY=1;
NIM_DELETE=2;

NIF_ICON = 2;
NIF_MESSAGE = 1;
NIF_TIP = 4;

WM_USER = $400;
MYWM_NOTIFYICON=WM_USER+109;



type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
procedure OnTaskBarMsg(var Msg: TMessage); message MYWM_NOTIFYICON;
public
{ Public declarations }
end;
NOTIFYICONDATA=record
cbSize : Longint;
hwnd : Longint;
uID : Longint;
uFlags : Longint;
uCallbackMessage : Longint;
hIcon : Longint;
szTip :array[0..63]of char;
End ;



var
Form1: TForm1;
tnid:NOTIFYICONDATA;
Function Shell_NotifyIcon (dwMessage :Longint; var lpData: NOTIFYICONDATA) : Longint;
stdcall;external 'shell32.dll';


implementation

{$R *.DFM}

procedure TForm1.OnTaskBarMsg(var Msg: TMessage);

begin
IF (msg.LParam =514) then
if form1.WindowState =wsMinimized then
form1.WindowState :=wsNormal
else
form1.WindowState :=wsMinimized;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin

tnid.cbSize :=sizeof(NOTIFYICONDATA);
tnid.hwnd:=form1.Handle;
tnid.uID :=100;
tnid.hIcon :=application.Icon.Handle ;
tnid.uFlags :=nif_icon or NIF_TIP or NIF_MESSAGE;
tnid.szTip :='我的任务栏图标';
tnid.uCallbackMessage :=MYWM_NOTIFYICON;

Shell_NotifyIcon(NIM_ADD,tnid);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
shell_notifyicon(NIM_DELETE,tnid);
end;

end.
 
dpr 中 加入 Application.ShowMainForm:= False;
 
liuge 点你的图标能执行程序吗??:)
Function Shell_NotifyIcon (dwMessage :Longint; var lpData:
NOTIFYICONDATA) : Longint;
stdcall;external 'shell32.dll';
没必要,delphi 不同 vb 他重写了这个函数,只需在 uses 中加入 shellapi 即可
可写一个 wm_message 传递 鼠标点击事件。
 
多人接受答案了。
 
阿蒙,当然能。我只是给了一个简单例子。
可以在procedure TForm1.OnTaskBarMsg(var Msg: TMessage);里
弹出一个菜单呀。
 

Similar threads

后退
顶部