vc 製作系統托盤程式實現將視窗最小化到系統托盤
2023年01月11日 星期五 10:24
前段時間因為要用到系統拖盤,所以研究了一下,在這裡記錄一下,免得以後忘了 ^_^
先在類中定義乙個結構變數notifyicondata pnid;然後在oninitdialog進行初始化
pnid.cbsize=(dword)sizeof(notifyicondata);//該結構體大小
pnid.hwnd=m_hwnd; //視窗控制代碼
pnid.uid=(uint)m_hicon; //圖示控制代碼
pnid.uflags=nif_icon|nif_message|nif_tip ; //圖示有效|自定義訊息有效|滑鼠指向顯示文字有效
pnid.ucallbackmessage=wm_mymessage;//自定義的訊息名稱
pnid.hicon=m_hicon; //圖示控制代碼
strcpy(pnid.sztip,"這是乙個測試");//滑鼠指向所顯示的文字
實現最小化到系統拖盤,這定義乙個視窗的
onsize
事件void cmydlg::onsize(uint ntype, int cx, int cy)
}還原功能則先在cmydlg.h做下列操作:
#define wm_mymessage wm_user+101 //定義自定義訊息,加的這個值一般都要大於100
afx_msg lresult onmymessage(wparam wparam, lparam lparam); //在類中定義訊息響應函式
在begin_message_map(cmydlg, cdialog)
end_message_map() 之間查入訊息對映
on_message(wm_mymessage,onmymessage)
然後建立onmymessage函式。
lresult cmydlg::onmymessage(wparam wparam, lparam lparam)
return 0;
}如果要更改顯示圖示則先更改pnid結構裡的值,然後使用shell_notifyicon(nim_modify,&pnid);來更改。
VC程式設計製作系統托盤程式
windows作業系統中的某些程式執行時不顯示執行視窗,只在工作列上顯示乙個圖示,表示程式正在執行,使用者可以通過滑鼠與應用程式互動,比如金山毒霸等應用程式,我們有時也需要編制一些僅在後台執行的類似程式,為了不干擾前台程式的執行介面和不顯示不必要的視窗,應使程式執行時的主視窗不可見。同時將乙個圖示顯...
VC程式設計製作系統托盤程式
windows作業系統中的某些程式執行時不顯示執行視窗,只在工作列上顯示乙個圖示,表示程式正在執行,使用者可以通過滑鼠與應用程式互動,比如金山毒霸等應用程式,我們有時也需要編制一些僅在後台執行的類似程式,為了不干擾前台程式的執行介面和不顯示不必要的視窗,應使程式執行時的主視窗不可見。同時將乙個圖示顯...
VC程式設計製作系統托盤程式
windows 作業系統中的某些程式執行時不顯示執行視窗,只在工作列上顯示乙個圖示,表示程式正在執行,使用者可以通過滑鼠與應用程式互動,比如金山毒霸等應用程式,我們有時也需要編制一些僅在後台執行的類似程式,為了不干擾前台程式的執行介面和不顯示不必要的視窗,應使程式執行時的主視窗不可見。同時將乙個圖示...