MFC實現程式托盤

2021-07-10 10:59:41 字數 1430 閱讀 5773

今天將程式托盤加入了正在開發的程式中,實現如下。

使程式托盤我們這裡要用到了乙個結構體notifyicondata,它包含了系統需要用來傳遞托盤區域資訊的訊息;還有需要用到乙個函式shell_notifyicon,它的作用是對拖盤圖示進行顯示與刪除。

struct notiflyicondata

;bool shell_notifyicon( dword dwmessage,pnotifyicondata lpdata);/**dwmessage:執行的操作,可選引數為:nim_add(建立託管圖示,nim_delete(刪除託管圖示),nim_modify(修改託管圖示)**/

現在開始實現,首先定義notifyicondata,在oninitdialog對其初始化。

nid.cbsize=(dword)sizeof(notifyicondata); 

nid.hwnd=this-> m_hwnd;

nid.uid=idr_mainframe;

nid.uflags=nif_icon|nif_message|nif_tip ;

nid.ucallbackmessage = wm_showtask;//自定義的訊息名稱

nid.hicon=loadicon(afxgetinstancehandle(),makeintresource(idr_mainframe));

strcpy(nid.sztip, _t("***"));//資訊提示條

shell_notifyicon(nim_add,&nid);//在托盤區新增圖示

自定義訊息供notifyicondata結構使用。

#define wm_showtask (wm_user + 100)

afx_msg lresult onshowtask(wparam wparam,lparam lparam);

lresult cqueueserverdlg::onshowtask(wparam wparam,lparam lparam) //wparam是圖示的id,lparam是滑鼠的行為

switch(lparam)

break;

case wm_lbuttondblclk:

break;

case wm_lbuttondown:

this-> showwindow(sw_show);

break;

} return 0;

}

最後在ondestroy函式刪除托盤圖示。

shell_notifyicon(nim_delete,&nid);

mfc 對話方塊程式 托盤實現

1 在標頭檔案裡面定義 訊息 define wm showtask wm user 10 在主視窗類裡面定義 乙個變數 兩個函式 a 變數 托盤結構體的變數 notifyicondata m nid b 初始化上述變數的函式 void totray void c 托盤的訊息處理函式 lresult ...

MFC中托盤(TRAYICON)實現

在使用這個類的時候,需要注意 托盤選單的id要和圖示資源的id一樣,否則會出錯。新增新的類,選擇父類是 trayicon.h pragma once trayicon.h 標頭檔案 繼承自ccmdtarget才能接收訊息,詳見 深入淺出 mfc class ctrayicon public ccmd...

NotifyIcon實現托盤程式

notifyicon 控制項的常用屬性 屬性 icon 型別 system.drawing.icon 說明 將在系統工作列中顯示的圖示。可以在設計時指定,也可在執行時動態指定。屬性 text 型別 string 說明 用於指定當滑鼠停留在小圖示上時顯示的資訊。屬性 visible 型別 bool 說...