最小化托盘
2017-03-21 18:09
113 查看
第一步:在BOOL CXXDlg::OnInitDialog()中添加
第二步:添加函数 在头文件中添加消息处理函数
类中添加函数
在.cpp中添加
第三步:添加函数实现
第四步:添加释放函数,如果删除图标,则在关闭窗口后托盘图标仍然存在,不过仍然存在一些问题,如果程序非正常关闭,则托盘图标仍然存在,有待后续研究
///最小化托盘 ShowWindow(SW_HIDE); ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW, 0);
第二步:添加函数 在头文件中添加消息处理函数
#define WM_TASKBAR WM_APP+1000
类中添加函数
LRESULT OnTaskbar(WPARAM wParam, LPARAM lParam);
在.cpp中添加
BEGIN_MESSAGE_MAP(CAutoAddDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_MESSAGE(WM_TASKBAR, OnTaskbar) ON_WM_DESTROY() END_MESSAGE_MAP()
第三步:添加函数实现
BOOL CAutoAddDlg::AddIcon() { HICON hIcon=theApp.LoadIcon(IDI_ICON_Time);//图标句柄 CString lpszTip = _T("little chock!"); //给NOTIFYICONDATA结构赋值 NOTIFYICONDATA tnid; tnid.cbSize = sizeof(NOTIFYICONDATA); tnid.hWnd = m_hWnd; tnid.uID = IDI_ICON_Time; tnid.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP; tnid.uCallbackMessage = WM_TASKBAR; tnid.hIcon = hIcon; lstrcpyn(tnid.szTip, lpszTip, sizeof(tnid.szTip)); return Shell_NotifyIcon(NIM_ADD, &tnid); } BOOL CAutoAddDlg::DeleteIcon() { //提供结构大小,窗口句柄和图标ID NOTIFYICONDATA tnid; tnid.cbSize = sizeof(NOTIFYICONDATA); tnid.hWnd = m_hWnd; tnid.uID = IDI_ICON_Time; //用NIM_DELETE删除图标 return Shell_NotifyIcon(NIM_DELETE, &tnid); } ///处理托盘事件-鼠标覆盖-鼠标点击(左击-右击) LRESULT CAutoAddDlg::OnTaskbar(WPARAM wParam, LPARAM lParam) { UINT uMouseMsg = (UINT)lParam; switch (uMouseMsg) { case WM_LBUTTONDOWN://鼠标左键消息 ShowWindow(SW_SHOWNORMAL); break; case WM_RBUTTONUP: // 鼠标右键消息 break; //添加其他响应消息 default: break; } return 0; }
第四步:添加释放函数,如果删除图标,则在关闭窗口后托盘图标仍然存在,不过仍然存在一些问题,如果程序非正常关闭,则托盘图标仍然存在,有待后续研究
void CAutoAddDlg::OnDestroy() { CDialog::OnDestroy(); // TODO: Add your message handler code here DeleteIcon(); }
相关文章推荐
- MFC对话框最小化到托盘
- wpf 最小化托盘
- foobar2000设置关闭按钮最小化到系统托盘
- C# WinForm窗口最小化到系统托盘
- MFC中将窗口最小化到托盘实现原理及操作步骤
- 关闭时最小化到系统托盘中的单实例应用程序
- VC++:如何将程序最小化到托盘
- C#实现WinForm窗口最小化到系统托盘
- 把AIR程序最小化到系统托盘.
- 定义热键调用主窗体(最小化到系统托盘)
- C#winform中怎么将程序最小化到系统托盘
- VC最小化程序到托盘
- 最小化到托盘
- [整理]点击最小化时把窗口放在系统托盘中的方法
- MFC程序最小化到托盘
- Java JFrame设计及最小化到系统托盘的实现
- VC++:如何将程序最小化到托盘
- AllTray-将挨次最小化到系统托盘
- winform将窗体最小化到托盘
- MSN 2011 最小化到任务托盘和去广告的方法