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

2021-07-06 05:48:44 字數 914 閱讀 6302

所謂的「托盤」,在windows系統介面中,指的就是下面任務條右側,有系統時間等等的標誌的那一部分。在程式最小化或掛起時,但有不希望佔據工作列的時候,就可以把程式放到托盤區。

一 、原理

1、最小化的原理:首先要將視窗隱藏,然後 在右下角繪製圖示。

二、**實現

1、自定義訊息wm_showtask: #define wm_showtask (wm_user +1)

2、在mfc的::onsyscommand(uint nid, lparam lparam)函式體中增加乙個命令響應

if(nid==sc_minimize) totray(); //最小化到托盤的函式

3、在begin_message_map(cmy2009dlg, cdialog)和end_message_map()中間中新增如下**

on_message(wm_showtask,onshowtask)

其中wm_showtask是訊息名,onshowtask是自己定義的訊息響應函式,後面有說明。

4、最小化到托盤函式

void cmydlg::totray()

5、恢復介面函式

在標頭檔案中定義訊息響應函式afx_msg lresult onshowtask(wparam wparam,lparam lparam) ;

//wparam接收的是圖示的id,而lparam接收的是滑鼠的行為

lresult cmydlg::onshowtask(wparam wparam,lparam lparam)

break;

case wm_lbuttondblclk://雙擊左鍵的處理

break;

default: break;

}return 0;

}6、刪除托盤圖示函式

void cmydlg::deletetray()

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

外一篇 vc最小化程式到托盤 一 notifyicondata結構 notifyicondata結構包含了系統用來處理托盤圖示的資訊,它包括選擇的圖示 訊息 提示訊息 圖示對應的視窗等內容。其定義為 typedef struct notifyicondata notifyicondata,pnoti...

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...