首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

托盘怎么实现(高分求解)

2012-02-21 
托盘如何实现(高分求解)我想让目标程序隐藏到后台,然后在右小角显示个图表, 点他就出出来谁能提供下实现方

托盘如何实现(高分求解)
我想让目标程序隐藏到后台,然后在右小角显示个图表, 点他就出出来
谁能提供下实现方法
我的油箱:59952804@qq.com


[解决办法]

Delphi(Pascal) code
rxlib组件包里的RXTrayIcon下载地址http://www.winu.cn/thread-1666-1-1.html1、设置RXTrayIcon的icon和icons2、给popupmenu关联一个右键菜单3、在它的onDblClick事件中写一下代码procedure TFormMain.RxTrayIcon1DblClick(Sender: TObject);begin ShowWindow(Application.Handle, SW_RESTORE); setwindowpos(application.handle,HWND_TOPMOST,0,0,0,0,swp_hidewindow);end;
[解决办法]
给楼主贴一段代码看看: 

unit Unit1; 

interface 

uses 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
Dialogs,ShellAPI, ImgList, Menus; 

const WM_NOTIFY = WM_USER + 101; // TRAY消息 
WM_TOOLTRAYICON = WM_USER+1; 
type 
TfrmMain = class(TForm) 
imlToolbar: TImageList; 
PopupMenu1: TPopupMenu; 
N1: TMenuItem; 
procedure FormCreate(Sender: TObject); 
procedure N1Click(Sender: TObject); 
private 
{ Private declarations } 
procedure OnAppMinimize(Sender: TObject); // 应用程序最小化响应函数 
procedure OnNotify(var Msg : TMessage); message WM_NOTIFY; 
procedure ToolMSG(var Msg: TWMSYSCOMMAND); Message WM_TOOLTRAYICON; 
public 
{ Public declarations } 
end; 

var 
frmMain: TfrmMain; 
NotifyIcon : TNotifyIconData; 

implementation 

{$R *.dfm} 

procedure TfrmMain.FormCreate(Sender: TObject); 
var 
Icon : TIcon; 
begin 

// 
//NotifyIcon为全局变量,在程序的开头已经定义了 
// 
with NotifyIcon do 
begin 
cbSize:=SizeOf(TNotifyIconData); 
Wnd:=Handle; //指向当前窗体frmMain的句柄 
uID:=1; 
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP; 
uCallBackMessage:=WM_NOTIFY; 
hIcon:=Application.Icon.Handle; 
icon := TIcon.Create(); 
frmmain.imlToolbar.GetIcon(0, icon); 
hIcon := icon.Handle; 
szTip:= '短信程序 '; 
end; 
Application.OnMinimize := OnAppMinimize; 
end; 

// 
// 应用程序最小化时调用此函数 
// 
procedure TfrmMain.OnAppMinimize(Sender: TObject); 
begin 
// if Config.m_Config.m_Hide then 
 // begin 
frmMain.Visible := False; 
// 
// 把设置好的变量NotifyIcon加入到系统中以便处理 
// 
Shell_NotifyIcon(NIM_ADD,@NotifyIcon); 
 // end; 
end; 

// 
// 托盘图标响应事件 
// 
procedure TfrmMain.OnNotify(var Msg: TMessage); 
var 
pos : TPoint; 
begin 
case Msg.LParam of 
WM_LBUTTONDBLCLK: // 双击事件 
begin 
frmMain.Visible := True ; 
Shell_NotifyIcon(NIM_DELETE,@NotifyIcon); 
Application.Restore(); 
SetForegroundWindow(frmMain.Handle); 
end; 
WM_RBUTTONUP: // 右键点击 
begin 
GetCursorPos(pos); 
frmMain.PopupMenu1.Popup(pos.X, pos.Y); 


end; 
End; 
end; 

procedure TfrmMain.N1Click(Sender: TObject); 
begin 
close; 
end; 

procedure TfrmMain.ToolMSG(var Msg: TWMSYSCOMMAND); 
begin 
if (Msg.Msg = WM_TOOLTRAYICON) and 
(Msg.Key = WM_LBUTTONDBLCLK) then 
showwindow(application.handle,sw_show); 
end; 

end.

[解决办法]
http://www.delphifans.com/infoview/Article_29.html 安装说明
http://www.tomore.com/2/2083.html 下载地址

4条裤衩就看你的啦

热点排行