VC按最小化、关闭按钮、Esc键都隐藏主窗口,在托盘处程序图标的右键菜单中点击,显示主窗口。
1. 按最小化时隐藏主窗口:为窗口添加WM_SIZE消息响应函数
void CdDlg::OnSize(UINT nType, int cx, int cy)
{CDialogEx::OnSize(nType, cx, cy);if(nType == SIZE_MINIMIZED)ShowWindow(SW_HIDE);
}
2. 按窗口的关闭按钮,隐藏主窗口:为窗口添加WM_CLOSE消息响应函数
void CdDlg::OnClose()
{ShowWindow(SW_HIDE);//CDialogEx::OnClose(); // 阻止消息继续传递
}
3. 按Esc键,隐藏主窗口:重载窗口的PreTranslateMessage()函数
BOOL CdDlg::PreTranslateMessage(MSG* pMsg)
{if(pMsg->message == WM_KEYDOWN){if(pMsg->wParam == VK_ESCAPE){ShowWindow(SW_HIDE);return TRUE;}}return CDialogEx::PreTranslateMessage(pMsg);
}
4. 右击托盘处程序图标,在弹出菜单中点击“显示主窗口”菜单项,弹出主窗口(实际上就是该菜单项的响应函数)
void CdDlg::OnShowMainwindow()
{ShowWindow(SW_SHOWNORMAL);SetForegroundWindow();
}