系統托盤程式設計

2021-04-12 12:28:55 字數 1778 閱讀 8688

所謂的「托盤」,在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...