VC最小化程式到托盤

2021-04-30 04:00:59 字數 1198 閱讀 4584

一、notifyicondata結構

notifyicondata結構包含了系統用來處理托盤圖示的資訊,它包括選擇的圖示、**訊息、提示訊息、圖示對應的視窗等內容。其定義為:

typedef struct _notifyicondata 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          修改圖示

void cuserdlg::totray()

四.新增訊息wm_showtask的響應函式afx_msg lresult onshowtask(wparam wparam,lparam lparam);

在begin_message_map(cuserdlg, cdialog)和end_message_map()之間加**:

on_message(wm_showtask,onshowtask)

編寫該函式:

然後在oninitdialog函式中呼叫totray();

五為使應用程式退出時圖示消失,對映wm_destroy訊息,在ondestroy()函式中加入:

::shell_notifyicon(nim_delete,&m_tnid);

六。至此,托盤圖示程式的常規功能我們均已實現。我們還可以通過shell_notifyicon()函式的呼叫實現不同狀態下圖示的改變,就象金山詞霸在主視窗開啟與暫停取詞時圖示有所改變一樣。 它常 用來顯示一些系統的狀態。如:系統時間,音量控制以及其它的一些圖示

總體的思想就是這樣的

VC最小化到托盤程式

在實際操作電腦的過程中,我們常常可以看到一些應用程式可以最小化到桌面右下角的托盤中顯示,如一些防毒軟體等開機就顯示在托盤中,或是我們常用的qq等聊天工具,都可以最小化在托盤中,如圖 1。在圖 1中,可以看到第乙個伺服器樣式的圖示,那個就是我編寫的伺服器程式最小化在托盤中的顯示。其實很簡單,只要在程式...

最小化程式到托盤

引用 所謂的 托盤 在windows系統介面中,指的就是下面任務條右側,有系統時間等等的標誌的那一部分。在程式最小化或掛起時,但有不希望佔據工作列的時候,就可以把程式放到托盤區。一 托盤程式設計相關函式 把程式放到托盤上的本質就是先在托盤區繪製乙個圖示,然後把程式隱藏不見,再對托盤的圖示進行訊息處理...

最小化到托盤

notifyicon notifyicon1 void inittraymenu 在建構函式時呼叫此函式 void notifyicon1 click object sender,eventargs e private void menuitem1 click object sender,syste...