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();
}