NOTIFYICONDATA結構分析

NOTIFYICONDATA結構
2008-11-30 21:15

//農機調度項目代碼

NOTIFYICONDATA m_notifyData;

m_notifyIcon.ChangeIcon(IDI_PAUSE, _T("監控終端服務器已暫停"));

void CMyNotifyIcon::AddIcon(UINT idResourceIcon, LPCTSTR tip)
{
HICON hIcon = AfxGetApp()->LoadIcon(idResourceIcon);
ASSERT(hIcon != NULL);

m_notifyData.hIcon = hIcon;
wsprintf(m_notifyData.szTip, _T("%s"), tip);

m_notifyData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;

Shell_NotifyIcon(NIM_ADD, &m_notifyData);
}

 

---- NOTIFYICONDATA結構包含了系統用來處理托盤圖標的信息,它包括選擇的圖標、回調消息、提示消息、圖標對應的窗口等內容。其定義爲:

    typedef struct _NOTIFYICONDATA {

        DWORD cbSize;        

              //以字節爲單位的這個結構的大小

        HWND hWnd;                

              //接收托盤圖標通知消息的窗口句柄

        UINT uID;     //應用程序定義的該圖標的ID

        UINT uFlags;         

              //設置該圖標的屬性

        UINT uCallbackMessage;  

              //應用程序定義的消息ID號,此消息傳遞給hWnd

        HICON hIcon;           

              //圖標的句柄

      char szTip[64];         

       //鼠標停留在圖標上顯示的提示信息

    } NOTIFYICONDATA, *PNOTIFYICONDATA;

該結構中,成員uFlags可以使下列之一或組合:

    NIF_ICON        設置成員hIcon有效

    NIF_MESSAGE    設置成員uCallbackMessage有效

    NIF_TIP           設置成員szTip有效

---- 二、Shell_NotifyIcon函數

---- 全局函數Shell_NotifyIcon() 用於在托盤上增加、刪除或修改圖標。其原型爲:

           WINSHELLAPI BOOL WINAPI

                 Shell_NotifyIcon( DWORD dwMessage,

                      PNOTIFYICONDATA pnid);

---- Pnid是上面的NOTIFYICONDATA結構的指針; dwMessage是被傳遞的消息,可以是以下消息之一:

              NIM_ADD             增加圖標

              NIM_DELETE          刪除圖標

              NIM_MODIFY          修改圖標

 

 

---- 爲使應用程序退出時圖標消失,映射WM_DESTROY消息,在OnDestroy()函數中加入:

       ::Shell_NotifyIcon(NIM_DELETE,&m_tnid);

 

發佈了58 篇原創文章 · 獲贊 0 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章