定義托盤響應訊息:
#define wm_systray wm_user + 120
在標頭檔案中定義變數:
windowplacement m_wp;
// 以便在恢復時使用
notifyicondata m_tmid;
// 托盤結構
crect
m_rectwnd; // 儲存視窗區域
在初始化函式中加入:
getwindowrect(&m_rectwnd); // 恢復時使用
getwindowplacement(&m_wp); //恢復時用
windowplacement wp;
wp.length = sizeof(windowplacement);
wp.flags = wpf_restoretomaximized;
wp.showcmd = sw_hide;
setwindowplacement(&wp);
m_tmid.cbsize = sizeof (notifyicondata);
m_tmid.hwnd = this->m_hwnd;
m_tmid.uflags = nif_message | nif_icon | nif_tip;
m_tmid.ucallbackmessage = wm_systray;
m_tmid.uid = idr_mainframe;
cstring sz = _t("");
strcpy(m_tmid.sztip, "");
hicon hicon;
m_tmid.hicon = hicon;
pnotifyicondata m_ptnid = &m_tmid;
::shell_notifyicon(nim_add, m_ptnid);
if (hicon)
::destroyicon(hicon);
增加視窗訊息函式 wm_destroy 增加如下
void cclientdlg::ondestroy()
響應windowproc訊息
lresult cclientdlg::windowproc(uint message, wparam wparam, lparam lparam)
break;
case wm_syscommand:
if (wparam == sc_minimize)
if (wparam == sc_close)
break;
}return cdialog::windowproc(message, wparam, lparam);
}
MFC基於對話方塊程式
001 020 else if nresponse idcancel 如果對話方塊是用取消來關閉的,則 021 025 026 由於對話方塊已關閉,所以將返回 false 以便退出應用程式,027 而不是啟動應用程式的訊息幫浦。028 return false 029 因為initinstance ...
mfc對話方塊隱藏
有很多應用程式要求一起動就隱藏起來,這些程式多作為後台程式執行,希望不影響其他視窗,往往只在托盤區顯示乙個圖示。這些程式通常都是對話方塊程式,而對話方塊在初始化的過程上與sdi mdi的初始化是不同的,對話方塊只需要domodule或者是createdialog等等對話方塊函式呼叫一次便可,sdi ...
MFC 對話方塊 隱藏 關閉
1.隱藏當前對話方塊 showwindow this m hwnd,false 2.關閉當前對話方塊 首先在對話方塊訊息函式中新增 wm close訊息,然後在自己的類中,過載onclose 函式 關閉當前對話方塊語句為 關閉當前對話方塊 cdialog onclose 3.關閉主對話方塊 向主對話...