delphi 关闭时缩小到托盘_delphi 实现最小化系统托盘
1、new -->application
2、在form1中加入一個tPopMenu 命名為pm1
3、uses ShellAPI;
4、定義一個常量在
const
WM_TRAYMSG = WM_USER + 101;
5、在private中生命變量
NotifyIcon: TNotifyIconData;
6.聲明兩個消息
procedure TfrmMain.WMSysCommand(var Msg: TMessage);
begin
if Msg.WParam = SC_ICON then
Self.Visible := False
else
DefWindowProc(Self.Handle, Msg.Msg, Msg.WParam, Msg.LParam);
end;
procedure TfrmMain.WMTrayMsg(var Msg: TMessage);//聲明托盤消息
var
p: TPoint;
begin
case Msg.LParam of
WM_LBUTTONDOWN: Self.Visible := True; //顯示窗體
WM_RBUTTONDOWN:
begin
SetForegroundWindow(Self.Handle); //把窗口提前
GetCursorPos(p);
pm1.Popup(p.X, p.Y);
end;
end;
end;
7、oncreate中
with NotifyIcon do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle;
uID := ;
uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP; //圖標、消息、提示信息
uCallbackMessage := WM_TRAYMSG;
hIcon := Application.Icon.Handle;
szTip := 'erp服務';
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIcon);
//去掉關閉按鈕
EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
8、ondestroy中
Shell_NotifyIcon(NIM_DELETE, @NotifyIcon);
整體代碼
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellAPI, Menus;
const
WM_TRAYMSG = WM_USER + ;
type
TForm1 = class(TForm)
pm1: TPopupMenu;
N1: TMenuItem;
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
NotifyIcon: TNotifyIconData;
procedure WMTrayMsg(var Msg: TMessage); message WM_TRAYMSG; //聲明托盤消息
procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @NotifyIcon);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with NotifyIcon do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle;
uID := ;
uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP; //圖標、消息、提示信息
uCallbackMessage := WM_TRAYMSG;
hIcon := Application.Icon.Handle;
szTip := 'erp服務';
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIcon);
//去掉關閉按鈕
EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
end;
{ TForm1 }
procedure TForm1.WMSysCommand(var Msg: TMessage);
begin
if Msg.WParam = SC_ICON then
Self.Visible := False
else
DefWindowProc(Self.Handle, Msg.Msg, Msg.WParam, Msg.LParam);
end;
procedure TForm1.WMTrayMsg(var Msg: TMessage);
var
p: TPoint;
begin
case Msg.LParam of
WM_LBUTTONDOWN: Self.Visible := True; //顯示窗體
WM_RBUTTONDOWN:
begin
SetForegroundWindow(Self.Handle); //把窗口提前
GetCursorPos(p);
pm1.Popup(p.X, p.Y);
end;
end;
end;
end.
//這是從網上找的在delphi7測試通過(引用的哪忘了)--- http://blog.csdn.net/akof1314/article/details/6411179?這個列牛B
delphi 實現最小化系統托盤(rz控件最簡單 評論)
1.new -->application 2.在form1中加入一個tPopMenu 命名為pm1 3.uses ShellAPI; 4.定義一個常量在 const WM_TRAYMSG = W ...
Delphi - 利用TRzTrayIcon實現WinFrm工程最小化到托盤
第三方RC控件的安裝 瀏覽器搜索Delphi Rz控件下載,找到下載一個安裝文件,解壓后點擊RC3.exe一鍵安裝. Delphi WinFrm工程最小化到托盤 Delphi新建WinFrm工程,在主 ...
VC++ 最小化到托盤、恢復
所謂的“托盤”,在Windows系統界面中,指的就是下面任務條右側,有系統時間等等的標志的那一部分.在程序最小化或掛起時,但有不希望占據任務欄的時候,就可以把程序放到托盤區. 一.托盤編程相關函數?? ...
outlook新郵件到達提醒設置以及outlook最小化到托盤設置
有些郵件是需要馬上處理的,因此希望能在收到郵件之后馬上就知道,但是有不希望頻繁的去檢查有沒有.outlook可以幫我們輕松做到新郵件到達提醒. 一 .設置outlook新郵件到達提醒:選項->電 ...
vc++ 最小化到托盤的詳細實現
在VC++中,想實現將MFC最小化到系統托盤,需要調用NOTIFYICONDATA類,并注冊相應的消息,以下詳細講解如何實現: 1.聲明一個NOTIFYICONDATA類,也就是NOTIFYICOND ...
【VS開發】最小化到托盤 shell_notifyicon和NOTIFYICONDATA
shell_notifyicon和NOTIFYICONDATA Shell_NotifyIcon函數,向任務欄的狀態欄發送一個消息 函數原型 BOOL Shell_NotifIcon( DWORD?d ...
C++ 最小化到托盤
#define WM_SHOWTASK (WM_USER + 1) void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID &a ...
WPF實現窗口最小化到托盤,并且實現右擊菜單
原版是從網上找了一位大神的,自己只是用了一點適合自己的. 具體實現 1.首先已經確認WPF中沒有實現最小化托盤的類與方法,用到了winform中的程序集 using Drawing = System. ...
MFC窗口實現最小化到托盤 右鍵菜單和還原
//.h文件 void toTray();//最小化到托盤 void DeleteTray();//刪除托盤圖標 afx_msg LRESULT OnShowTask(WPARAM wParam,LP ...
隨機推薦
setNeedsDisplay,setNeedsLayout
UIView的setNeedsDisplay和setNeedsLayout方法.首先兩個方法都是異步執行的.setNeedsDisplay會調用自動調用drawRect方法,這樣可以拿到UIGraph ...
jquery-validation 使用
jquery-validation?使用 一.用前必備 官方網站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: ...
用Appium進行android自動化測試
appium是開源的移動端自動化測試框架,可以測試ios,android應用.appium讓移動端自動化測試不必限定在某種語言和某個具體的框架:也就是說任何人都可以使用自己最熟悉最順手的語言以及框架來 ...
JodaTime library not available - @DateTimeFormat not supported
使用spring的@DateTimeFormat來格式化Date類型時,報錯: org.springframework.validation.BindException: org.springfram ...
NodeJS服務器退出:完成任務,優雅退出
上一篇文章,我們通過一個簡單的例子,學習了NodeJS中對客戶端的請求(request)對象的解析和處理,整個文件共享的功能已經完成.但是,縱觀整個過程,還有兩個地方明顯需要改進: 首先,不能共享完畢 ...
使用 Xcode 和 Android Studio 管理 iOS 和 Android 項目版本
在移動應用開發和運營的過程中,版本管理是一個老生常談的基礎問題,一些版本的基本概念也常常會困擾我們的研發和運營人員.同時,手動管理軟件版本,也常常會因為不小心導致后續的發布和更新問題. 這里,我準備了 ...
動態規劃(背包問題):POJ 1742 Coins
Coins Time Limit: 3000MS ? Memory Limit: 30000K Total Submissions: 32955 ? Accepted: 11199 Descripti ...
mysql 1055
在 /etc/my.cnf 文件里加上如下: sql_mode=NO_ENGINE_SUBSTITUTION
總結
以上是生活随笔為你收集整理的delphi 关闭时缩小到托盘_delphi 实现最小化系统托盘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 薇娅被罚13亿后:还有部分头部主播偷漏税
- 下一篇: 10天长续航 Ticwatch GTK智