MFC如何将对话框最小化到任务栏,点击之后还原到桌面?
时间:2011-12-19
来源:互联网
作者: qq328422353 发布时间: 2011-12-19
作者: zyrr159487 发布时间: 2011-12-19
用这个试试看
作者: a3250028 发布时间: 2011-12-19
ShowWindow(SW_HIDE);
用这个试试看
作者: zq282502532 发布时间: 2011-12-19
作者: shen_wei 发布时间: 2011-12-19
可以试试
引用 2 楼 a3250028 的回复:
ShowWindow(SW_HIDE);
用这个试试看
这个只能隐藏对话框,但是点击任务栏图标对话框显示不出来,网上有隐藏到系统托盘的讲解,但不符合要求啊,要求是要显示在任务栏。求救啊...各位大大们
作者: qq328422353 发布时间: 2011-12-19
这个函数设置指定窗口的显示状态和恢复,最小化,最大化时的位置。
--------------------------------------------------------------------------------
The SetWindowPlacement function sets the show state and the restored, minimized, and maximized positions of the specified window.
Syntax
BOOL SetWindowPlacement( HWND hWnd,
WINDOWPLACEMENT *lpwndpl
);
作者: zhumengshu1 发布时间: 2011-12-19
作者: zhumengshu1 发布时间: 2011-12-19
C/C++ code
// 先添加一个成员变量 NOTIFYICONDATA m_Nid; // 托盘 // 然后添加如下成员函数 // 初始化显示托盘 void CRunDlg::InitPrompt(void) { // 设置托盘图标 m_Nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA); m_Nid.hWnd = m_hWnd; m_Nid.uID = IDR_MAINFRAME; m_Nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP; m_Nid.uCallbackMessage = WM_SHOWTASK; // 自定义托盘菜单消息 m_Nid.hIcon = ::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME)); wcscpy(m_Nid.szTip, _T("仓库管理系统")); Shell_NotifyIcon(NIM_ADD, &m_Nid); // 在托盘区添加图标 } // 添加托盘消息响应 afx_msg LRESULT OnShowTask(WPARAM wParam, LPARAM lParam); ON_MESSAGE(WM_SHOWTASK, &CRunDlg::OnShowTask) // 托盘菜单消息函数 LRESULT CRunDlg::OnShowTask(WPARAM wParam, LPARAM lParam) { if(wParam != IDR_MAINFRAME) // 判断图标ID是否相符 return 1; switch(lParam) { case WM_RBUTTONUP: {// 按鼠标右键 CPoint point; GetCursorPos(&point); CMenu menu; menu.CreatePopupMenu(); menu.AppendMenu(MF_STRING, [color=#FF0000]IDM_SHOW_WINDOW[/color], _T("显示")); menu.AppendMenu(MF_STRING, WM_DESTROY, _T("退出")); SetForegroundWindow(); // 解决菜单失去焦点不消失的BUG menu.TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this); menu.DestroyMenu(); } break; case WM_LBUTTONDBLCLK: // 双击鼠标左键 OnShowWindow(); break; } return 0; } // 菜单项单击"显示"响应函数 afx_msg void OnShowWindow(); ON_COMMAND(IDM_SHOW_WINDOW, &CRunDlg::OnShowWindow) // 托盘菜单"显示"响应函数 void CRunDlg::OnShowWindow() { if(IsWindowVisible()) SendMessage(WM_SYSCOMMAND, SC_RESTORE, (LPARAM)m_hWnd); else ShowWindow(SW_SHOW); } // 重写窗口过程函数,来拦截MFC窗口“最小化”按钮点击消息响应让程序最小化到托盘 LRESULT CRunDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: 在此添加专用代码和/或调用基类 // 单击最小化按钮 if (message == WM_SYSCOMMAND && wParam == SC_MINIMIZE) { //AfxMessageBox(_T("是否最小化窗口到托盘")); ShowWindow(SW_HIDE); // 隐藏主窗口 return 0; } return CDialog::DefWindowProc(message, wParam, lParam); }
作者: zh359780498 发布时间: 2011-12-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28