在MFC中怎樣將視窗最小化到托盤

2021-04-30 17:18:28 字數 1218 閱讀 8673

外一篇:

vc最小化程式到托盤

一、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()函式的呼叫實現不同狀態下圖示的改變,就象金山詞霸在主視窗開啟與暫停取詞時圖示有所改變一樣。 它常 用來顯示一些系統的狀態。如:系統時間,音量控制以及其它的一些圖示

總體的思想就是這樣的

在MFC中怎樣將視窗最小化到托盤並恢復

所謂的 托盤 在windows系統介面中,指的就是下面任務條右側,有系統時間等等的標誌的那一部分。在程式最小化或掛起時,但有不希望佔據工作列的時候,就可以把程式放到托盤區。一 原理 1 最小化的原理 首先要將視窗隱藏,然後 在右下角繪製圖示。二 實現 1 自定義訊息wm showtask defin...

MFC將視窗最小化到托盤

1 在標頭檔案中自定義訊息 define wm showtask wm user 1以及宣告訊息響應函式 afx msg lresult onshowtask wparam wparam,lparam lparam 宣告乙個結構體變數 notifyicondata nid 2 在cpp檔案訊息對映中...

MFC視窗最小化到托盤

把程式放到托盤上的本質就是先在托盤區繪製乙個圖示,然後把程式隱藏不見,再對托盤的圖示進行訊息處理,就可以了。繪製圖示以及確定圖示所傳送訊息的函式只有乙個,那就是 winshellapi bool winapi shell notifyicon dword dwmessage,pnotifyicond...