NOTIFYICONDATA

NOTIFYICONDATA

NOTIFYICONDATA是一個函式公式主要含義和作用是以此函式用來向系統列托盤區域傳送訊息

基本介紹

  • 中文名:NOTIFYICONDATA
  • 參數說明:dwMessage為輸入參數
  • 函式格式:BOOL Shell_NotifyIcon
  • 功能:以此函式用來向托盤區域傳送訊息
函式說明,參數說明,返回值,結構體,格式,成員說明,

函式說明

函式格式
BOOL Shell_NotifyIcon( DWORD dwMessage,PNOTIFYICONDATA lpdata);

參數說明

dwMessage為輸入參數,傳遞傳送的訊息,表明要執行的操作。可選的值如下:
NIM_ADD
向托盤區域添加一個圖示。此時第二個參數lpdata指向的NOTIFYICONDATA結構體中的hWnd和uID成員用來標示這個圖示,以便以後再次使用Shell_NotifyIcon對此圖示操作。
NIM_DELETE
刪除托盤區域的一個圖示。此時第二個參數lpdata指向的NOTIFYICONDATA結構體中的hWnd和uID成員用來標示需要被刪除的這個圖示。(說明,刪除托盤區一般情況下指定hWnd和uID就可以了,但也有例外,當向托盤區添加完圖示後,滑鼠右擊托盤圖示,應用程式這時會彈出一個選單,左鍵單擊一個選單項。假如應用程式彈出了一個對話框,好,把它關掉,這時再右鍵單擊托盤區圖示,在彈出的選單中選擇“退出”選單,結果,程式退出了,而圖示卻還在那,如果這時把滑鼠移到圖示上,圖示會立馬消失。但這不是我們想要的結果。所以要想保證程式退出時托盤區圖示消失,請添加如下語句:
NOTIFYICONDATA tnid;
tnid.uFlags = NIF_ICON;
OK。這樣就大功告成了。)
NIM_MODIFY
修改托盤區域的一個圖示。此時第二個參數lpdata指向的NOTIFYICONDATA結構體中的hWnd和uID成員用來標示需要被修改的這個圖示。
NIM_SETFOCUS
Version 5.0. 設定焦點。比如當用戶操作托盤圖示彈出選單,而有按下ESC鍵將選單消除後,程式應該使用此訊息來將焦點設定到托盤圖示上。
NIM_SETVERSION
Version 5.0. 設定系統列按照第二個參數lpdata指向的NOTIFYICONDATA結構體中的uVersion成員指定的版本號來工作。此訊息可以允許用戶設定是否使用基於Windows2000的version 5.0的風格。uVersion的預設值為0,默認指明了使用原始Windows 95圖示訊息風格。具體這兩者的區別請參考msdn中的Shell_NotifyIcon函式說明的Remarks。
lpdata為輸入參數,是指向NOTIFYICONDATA結構體指針,結構體內容用來配合第一個參數wMessage進行圖示操作。

返回值

如果圖示操作成功返回TRUE,否則返回FALSE。
如果dwMessage參數設為NIM_SETVERSION,則如果版本設定成功返回TRUE,如果設定的版本不支持返回FALSE。

結構體

包含系統需要的用來傳遞托盤區域訊息的信息。

格式

typedef struct _NOTIFYICONDATA {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
TCHAR szTip[64];
DWORD dwState;
DWORD dwStateMask;
TCHAR szInfo[256];
union {
UINT uTimeout;
UINT uVersion;
};
TCHAR szInfoTitle[64];
DWORD dwInfoFlags;
GUID guidItem;
} NOTIFYICONDATA, *PNOTIFYICONDATA;

成員說明

cbSize
結構體的大小,以位元組為單位。
hWnd
視窗的句柄。標示的視窗用來接收與托盤圖示相關的訊息。Shell_NotifyIcon函式調用時,hWnd和uID成員用來標示具體要操作的圖示。
uID
應用程式定義的系統列圖示的標識符。Shell_NotifyIcon函式調用時,hWnd和uID成員用來標示具體要操作的圖示。通過將多次調用,你可以使用不同的uID將多個圖示關聯到一個視窗hWnd。
uFlags
此成員表明具體哪些其他成員為合法數據(即哪些成員起作用)。此成員可以為以下值的組合:
NIF_ICON
hIcon成員起作用。
NIF_MESSAGE
uCallbackMessage成員起作用。
NIF_TIP
szTip成員起作用。
NIF_STATE
dwState和dwStateMask成員起作用。
NIF_INFO
使用氣球提示代替普通的工具提示框。szInfo, uTimeout, szInfoTitle和dwInfoFlags成員起作用。
NIF_GUID
保留。
uCallbackMessage
應用程式定義的訊息標示。當托盤圖示區域發生滑鼠事件或者使用鍵盤選擇或激活圖示時,系統將使用此標示向由hWnd成員標示的視窗傳送訊息。訊息回響函式的wParam參數標示了訊息事件發生的系統列圖示,lParam參數根據事件的不同,包含了滑鼠或鍵盤的具體訊息,例如當滑鼠指針移過托盤圖示時,lParam將為WM_MOUSEMOVE。
hIcon
增加、修改或刪除的圖示的句柄。注意,windows不同版本對於圖示有不同要求。Windows XP可支持32位。
szTip
指向一個以\0結束的字元串的指針。字元串的內容為標準工具提示的信息。包含最後的\0字元,szTip最多含有64個字元。
對於Version 5.0 和以後版本,szTip最多含有128個字元(包含最後的\0字元)。
dwState
Version 5.0,圖示的狀態,有兩個可選值,如下:
NIS_HIDDEN
圖示隱藏
NIS_SHAREDICON
圖示共享
dwStateMask
Version 5.0. 指明dwState成員的那些位可以被設定或者訪問。比如設定此成員為NIS_HIDDEN,將導致只有hidden狀態可以被獲取。
szInfo
Version 5.0. 指向一個以\0結束的字元串的指針。字元串的內容為氣球提示內容。最多含有255個字元。如果要移除已經存在的氣球提示信息,設定uFlags成員為NIF_INFO,同時將szInfo設為空。
uTimeout
和uVersion成員為聯合體。uTimeout表示氣球提示逾時的時間,單位為毫秒,此時間後氣球提示將消失。系統默認氣球提示的逾時時間最小值為10秒,最大值為30秒。如果設定的uTimeout的值小於10將設定最小值,如果大於30將設定最大值。將逾時時間分為最大最小兩種,是因為解決不同圖示的氣球提示同時彈出的問題,詳細內容請參考MSDN中NOTIFYICONDATA結構體說明的remarks。
uVersion
Version 5.0. 和uTimeout成員為聯合體。用來設定使用Windows 95 還是 Windows 2000風格的圖示訊息接口。請參考Shell_NotifyIcon函式的說明獲取更多信息。只有當使用Shell_NotifyIcon函式傳送NIM_SETVERSION訊息時,此成員才有作用。可選的值如下:
0
使用Windows 95風格。針對Windows 2000版本之前的windows設計的軟體請使用此值。
NOTIFYICON_VERSION
使用Windows 2000風格。 針對Windows 2000版本以及以後版本的windows設計的軟體請使用此值。
szInfoTitle
Version 5.0. 指向一個以\0結束的字元串的指針。字元串的內容為氣球提示的標題。此標題氣球提示框的上部,最多含有63個字元。
dwInfoFlags
Version 5.0. 設定此成員用來給氣球提示框增加一個圖示。增加的圖示氣球提示標題的左側,注意如果szInfoTitle成員設為空字元串,則圖示也不會顯示。可選值如下:
NIIF_ERROR
錯誤圖示。
NIIF_INFO
信息圖示。
NIIF_NONE
沒有圖示。
NIIF_USER
使用用戶使用hIcon成員指明的圖示,要求Windows XP Service Pack 2 (SP2)或以後系統。
NIIF_WARNING
警告圖示。
NIIF_ICON_MASK
Version 6.0. 保留。
NIIF_NOSOUND
Version 6.0. 禁止播放相應聲音。
guidItem
Version 6.0. 保留。

相關詞條

熱門詞條

聯絡我們