MFC 程式新增工作列托盤

2021-10-08 05:42:26 字數 1265 閱讀 8776

新增資源 menu,如 idr_menu1;

標頭檔案新增 

#define wm_tray_msg wm_user+1000

​ cmenu m_traypopupmenu;//選單

afx_msg void onshowmenu();//顯示主程式

afx_msg void onexitmenu();//退出

bool m_btray; //托盤標記;初始元為false

bool settray(bool btray); //設定托盤效果

afx_msg lresult ontraycallbackmsg(wparam wp, lparam lp); //托盤處理函式

afx_msg void onsyscommand(uint nid, lparam lparam);修改 on_wm_syscommand() 對應的

onsyscommand 函式,對 最小化時啟動托盤 的支援

原始檔新增

//訊息響應

on_message(wm_tray_msg, &cmaindialog::ontraycallbackmsg)

on_command(id_show_menu, &cmaindialog::onshowmenu)

on_command(id_exit_menu, &cmaindialog::onexitmenu)

on_wm_syscommand()

//oninitdialog()新增

m_traypopupmenu.loadmenu(idr_menu1);

m_btray = false;

bool cmaindialog::settray(bool btray)

else

return bret;

}lresult cmaindialog::ontraycallbackmsg(wparam wparam, lparam lparam)

default:

break;

} return 0;

}void cmaindialog::onshowmenu()

void cmaindialog::onexitmenu()

void cmaindialog::onsyscommand(uint nid, lparam lparam)

} cdialogex::onsyscommand(nid, lparam);

}

執行之後,最小化視窗就會在工作列顯示托盤圖示

工作列托盤

要實現系統托盤,就要認識notifyicondata結構體,如下 typedef struct notifyicondata tchar szinfotitle 64 指向乙個以 0結束的字串的指標。字串的內容為氣球提示的標題 dword dwinfoflags 設定此成員用來給氣球提示框增加乙個圖...

製作工作列托盤選單

1 準備乙個選單資源,並匯入乙個圖示資源 用作工作列上顯示的圖示 2 在你的程式中新增兩個變數,乙個是cmenu物件m menu,乙個是notifyicondata結構體物件m notifydata,這個結構體作用是 包含系統需要的用來傳遞托盤區域訊息的資訊 具體請查詢msdn 3 自定義乙個訊息,...

NotifyIcon製作工作列托盤選單

常用軟體飛信 qq在工作列中的圖示ico,以及滑鼠移動到圖示是右鍵選單選項 1 首先製作工作列圖示 this.showintaskbar true 2 窗體最小化時或者關閉時隱藏到工作列,有時候我們會選擇程式關閉時是退出程式還是隱藏到工作列 private void form1 sizechange...