所謂的「托盤」,在windows系統介面中,指的就是下面任務條右側,有繫統時間等等的標誌的那一部分。
二、托盤程式設計相關函式
winshellapi bool winapi shell_notifyicon(
dword dwmessage,
pnotifyicondata pnid
);
這個函式呢,負責向系統傳遞訊息,以新增、修改或刪除托盤區的圖
標。她的返回值呢,是個布林型別的。就是說,如果返回0,那就是成仁啦
,非0才成功。
使用時要把#include
加到頭檔案,否則提示出錯。
引數dwmessage 是表示這個函式的應用功能是哪一方面,是新增、刪
除,還是修改圖示。如果是新增,則它的值為nim_add;刪除則是
nim_delete;而修改是nim_modify。引數pnid就是具體的和程式在托盤區
的圖示有關係的結構了。它的定義如下:
typedef struct _notifyicondata notifyicondata, *pnotifyicondata;
cbsize : 結構的長度,用「位」來做單位。一般在程式中,我們用
(dword)sizeof(notifyicondata) 給它賦值。
hwnd : 乙個控制代碼,如果對托盤中的圖示進行操作,相應的訊息就傳給
這個控制代碼所代表的視窗。自然了,大多數情況下是this->m_hwnd嘍。
uid : 在工程中定義的圖示id
uflags : 這個成員標誌著其他哪些成員的資料是有效的,分別為
nif_icon, nif_message, nif_tip,分別代表著資料有效的成員是hicon,
ucallbackmessage, sztip。當然,三個值可以用「|」聯絡到一起。下面
分別對涉及到的成員進行闡述
hicon : 要增加,刪除或修改的圖示控制代碼。如果只知道個uid, 一般可
能會用函式loadicon來得到控制代碼。例如loadicon (
afxgetinstancehandle() ,makeintresource (idr_mainframe) )。
ucallbackmessage : 這在對托盤區的操作中,是比較重要的資料成員
。這是個訊息標誌,當用滑鼠對托盤區相應圖示進行操作的時候,就會傳
遞訊息給hwnd所代表的視窗。所以說,在uflags中,一般都得標誌它有效
。這裡一般都是自定義的訊息。
sztip : 滑鼠移動到托盤圖示上時的提示文字。
例子: notifyicondataa nid;//托盤結構體
。。。。。。
case wm_create:
nid.cbsize=(dword)sizeof(notifyicondata);
nid.hwnd=hwnd;
nid.uid=idr_mainframe;
nid.uflags=nif_icon|nif_message|nif_tip ;
nid.ucallbackmessage=wm_lbuttondblclk;//wm_showtask;//自定義
的訊息名稱
nid.hicon=loadicon(hinst,(lpctstr)idi_timec);
strcpy(nid.sztip,"自動計時");//資訊提示條為「計畫任務提醒」
shell_notifyicon(nim_add,&nid);//在托盤區新增圖示
break;
系統托盤程式
系統托盤程式 與系統托盤通訊的函式 shell notifyicon dword dwmessage,pnotifyicondata pnid 第乙個引數dwmessage可以取以下值 1 nim add 向托盤中加入乙個圖示 2 nim modify修改托盤中的圖示 3 nim delete 從托...
DELPHI 系統托盤
然後詳細說明下具體實現方法 1 在user處添家乙個 shellapi 這樣就可以代用這個api了,如 uses windows,messages,shellapi 2 宣告兩個常量 const mousemsg wm user 1 自定義訊息,用於處理使用者在圖示上點選滑鼠的事件 iid 100 ...
Qt程式設計技巧 系統托盤設定
trayicon new qsystemtrayicon this 系統托盤 traymenu new qmenu this 托盤選單 traymenu addaction action1 traymenu addaction quitaction10 connect trayicon,signal...