怎样把应用程序隐藏并在任务栏中显示图标???(200分)

  • 主题发起人 主题发起人 t7
  • 开始时间 开始时间
T

t7

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样把应用程序隐藏并在任务栏中显示图标???
请举个简单的例子。多谢了!!!
 
这个问题问过很多,你在论坛上查找一下“托盘”看一看。
<a href="DispQ.asp?LID=200656" title="来自:suntao">如何制作托盘程序</a>
<a href="DispQ.asp?LID=183579" title="来自:xlf">怎样把程序的图标做到系统托盘处</a>
 
jackal.easthome.net 有个任务蓝控件
 
1。用rxlib
2.application.mainform:=False
 
用其他控件
 
在执行程序之前,首先要改变Form1的Icon属性,给Form1装入一个图标,否则在任务栏上会出现一块空白。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ShellAPI;
const
WM_BARICON=WM_USER+200;
private
procedure WMSysCommand(var
Message: TMessage); message WM_SYSCOMMAND;
procedure WMBarIcon(var
Message:TMessage);message WM_BARICON;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMSysCommand
(var Message:TMessage);
var
lpData:PNotifyIconData;
begin
if Message.WParam = SC_ICON then
begin
//如果用户最小化窗口则将窗口
隐藏并在任务栏上添加图标
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;
//SizeOf(PNotifyIconDataA);
lpData.Wnd := Form1.Handle;
lpData.hIcon := Form1.Icon.Handle;
lpData.uCallbackMessage := WM_BARICON;
lpData.uID :=0;
lpData.szTip := 'Samples';
lpData.uFlags := NIF_ICON
or NIF_MESSAGE or NIF_TIP;
Shell_NotifyIcon(NIM_ADD,lpData);
dispose(lpData);
Form1.Visible := False;
end
else
begin
//如果是其它的SystemCommand
消息则调用系统缺省处理函数处理之。
DefWindowProc(Form1.Handle,Message.
Msg,Message.WParam,Message.LParam);
end;
//
end;
procedure TForm1.WMBarIcon(var Message:TMessage);
var
lpData:PNotifyIconData;
begin
if (Message.LParam = WM_LBUTTONDOWN) then
begin
//如果用户点击任务栏图标则将图标删除并回复窗口。
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;//SizeOf(PNotifyIconDataA);
lpData.Wnd := Form1.Handle;
lpData.hIcon := Form1.Icon.Handle;
lpData.uCallbackMessage := WM_BARICON;
lpData.uID :=0;
lpData.szTip := 'Samples';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
Shell_NotifyIcon(NIM_DELETE,lpData);
dispose(lpData);
Form1.Visible := True;
end;
end;
end.
 
是啊,这个问题很旧了,用程序也行,不过麻烦.
见建你用控件,很方便,控件也很多.
 
多人接受答案了。
 
后退
顶部