系统托盘的编程
出处:论文网
时间:2007-04-13
begin
GetCursorPos(CursorPos);
{ Popupmenu1.Popup(CursorPos.X,CursorPos.Y);
popupmen1里面就可以加入显示主窗口、退出等功能。这个右键菜单可以是静态的,如上面一句来弹出;也可以动态建立,如下面所示的方法:}
pm := createpopupmenu;//建立一个Hmenu,pm:hmenu;
AppendMenu(pm,0,ord('A'),'关于....');//在指定的菜单里添加一个菜单项
AppendMenu(pm,0,Ord('B'),'&Exit');
//加入菜单事件---》处理WMCOMMAND消息即可
TrackPopupMenu(pm,Tpm_BottomAlign or Tpm_RightAlign, CursorPos.x, CursorPos.y, 0,handle,nil);
//在图标上方显示该弹出式菜单
end ;
end ;
end;
procedure TForm1.WMCommand(var msg : TWMCommand);
begin
Case msg.ItemID of
Ord('A') : showmessage('我的右键菜单!');
Ord('B') : Self.close;//关闭程序主窗体
else inherited;
end;
end;
procedure Tform1.Minimize(var mess:TWMNCLBUTTONDOWN);//应用程序最小化消息处理
begin
if Mess.Hittest = htReduce then
Self.Hide
else inherited;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var {程序被关闭时通知Windows去掉小图标}
nid: TNotifyIconData;
begin
nid.cbSize := sizeof(nid); // nid变量的字节数
nid.uID := 1; //内部标识,与加入小图标时的数一致
nid.Wnd := Handle; //主窗口句柄
Shell_NotifyIcon(NIM_DELETE, @nid); //去掉小图标
end;