製作工作列托盤選單

2021-06-18 00:53:22 字數 888 閱讀 6447

1)準備乙個選單資源,並匯入乙個圖示資源(用作工作列上顯示的圖示)

2)在你的程式中新增兩個變數,乙個是cmenu物件m_menu,乙個是notifyicondata結構體物件m_notifydata,這個結構體作用是"包含系統需要的用來傳遞托盤區域訊息的資訊",具體請查詢msdn

3)自定義乙個訊息,在視窗最小化時向工作列註冊該訊息,以便在左單擊工作列上的圖示時能夠恢復顯示對話方塊或右鍵顯示選單.

#define wm_traymessage wm_user + 1

4)在對話方塊初始化時載入選單資源,並初始化m_notifydata結構體物件.

具體**如下:

5)在對話方塊的onsyscommand函式中截獲視窗最小化的訊息,呼叫shell_notifyicon外殼函式向工作列註冊托盤資訊

shell_notifyicon函式作用是向工作列區域傳送乙個增加,改變,或刪除圖示的訊息

shell_notifyicon(nim_add,&m_notifydata);           //註冊工作列資訊,將訊息wm_traymessage與圖示關聯起來

6)新增訊息wm_traymessage處理函式ontraymenu(wparam wparam,lparam lparam);(注意手動新增訊息對映時,響應函式返回值是lresult而不是void,在vs2008上若為void會報錯)

**如下:

on_message(wm_traymessage,ontraymessage)

7)最後新增oncancel()函式,在對話方塊關閉時刪除工作列中的托盤圖示

**如下:

shell_notifyicon(nim_delete,&m_notifydata);        //刪除托盤選單

cdialog::oncancel();

NotifyIcon製作工作列托盤選單

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

工作列托盤

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

MFC 程式新增工作列托盤

新增資源 menu,如 idr menu1 標頭檔案新增 define wm tray msg wm user 1000 cmenu m traypopupmenu 選單 afx msg void onshowmenu 顯示主程式 afx msg void onexitmenu 退出 bool m ...