国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在Window右下角的添加圖標

2019-11-17 05:12:46
字體:
來源:轉載
供稿:網友

  我們在諸如金山詞霸的軟件中看到,應用程序在任務欄的右下角加上了一個圖標,當用鼠標左擊和右擊該圖標時,會出現不同的菜單,這種程序是怎么實現的呢?  其實這是比較簡單的,只要我們知道Window的一些數據結構及相關的API函數就可以實現了。本人曾在VC及Delphi中都實現過這種程序,以下我的一些心得,希望對大家有借鑒作用。  在Delphi中的實現:  請New一個Form并加入以下的代碼:  請New一個Form 并加入以下的代碼: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, shellapi; const WM_MYNOTIFY = WM_USER + 1000 ;//消息 strNotifyTip=hello;//提示 ID_MAIN = 100 ; // 定義圖標的ID type TForm1 = class(TForm) PRocedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } Function AddIcon(hwnd : HWND):Boolean ; Function RemoveIcon(hwnd:HWND):Boolean ; Procedure MyNotify(var Msg:TMessage);message WM_MYNOTIFY; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin AddIcon(handle); end; //以下函數加入圖標,可在程序初始化時加入。 Function TForm1.AddIcon(hwnd : HWND):Boolean ; var nid : NOTIFYICONDATA ; begin nid.cbSize := sizeof(NOTIFYICONDATA); nid.Wnd := hwnd; nid.uID := ID_MAIN; nid.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; nid.UCallbackMessage := WM_MYNOTIFY; nid.hIcon := LoadIcon(hInstance,MAINICON); strCopy(nid.szTip,strNotifyTip); AddIcon := Shell_NotifyIcon(NIM_ADD, @nid); end ; Function TForm1.RemoveIcon(hwnd:HWND):Boolean ; var nid : NOTIFYICONDATA; begin nid.cbSize := sizeof(NOTIFYICONDATA); nid.Wnd := hwnd; nid.uID := ID_MAIN; nid.uFlags := 0; RemoveIcon := Shell_NotifyIcon(NIM_DELETE, @nid); end ; procedure TForm1.FormDestroy(Sender: TObject); begin RemoveIcon(handle); end; Procedure TForm1.MyNotify(var Msg:TMessage); begin case msg.LParam of WM_LBUTTONDOWN : begin application.MessageBox(Left button click ,My Notify,MB_OK); end; end; end; end. 你還可以改變圖標。代碼如下: nid.cbSize := sizeof(NOTIFYICONDATA); nid.Wnd := hwnd; nid.uID := ID_MAIN; nid.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; nid.uCallbackMessage := WM_TRAYNOTIFY;
nid.hIcon := 你的圖標。 strCopy(nid.szTip,strNotifyTip); Shell_NotifyIcon(NIM_MODIFY, @nid);   在VC里的實現也差不多。你幾乎可以完全模擬以上的代碼自己實現。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金溪县| 惠州市| 清镇市| 内丘县| 常宁市| 东乡县| 泊头市| 河池市| 安陆市| 八宿县| 环江| 屯留县| 许昌市| 苗栗县| 达孜县| 泸西县| 临清市| 长乐市| 杨浦区| 宕昌县| 武隆县| 肇源县| 手游| 梁山县| 宁陕县| 多伦县| 洞口县| 上饶市| 阳城县| 岐山县| 长武县| 临邑县| 德化县| 辛集市| 冕宁县| 根河市| 安吉县| 会昌县| 巴中市| 禹州市| 富裕县|