码迷,mamicode.com
首页 > 编程语言 > 详细

最小化窗口到托盘区-VC++

时间:2015-07-28 14:52:54      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:最小化到托盘区

1、在窗口类的.h文件中添加变量:NOTIFYICONDATA  pnid;

2、在窗口类的.CPP文件中自定义消息:WM_MYMESSAGE

3、在窗口类的初始化函数OnInitDialog中添加代码:

pnid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);

pnid.hWnd = m_hWnd;

pnid.uID = (UINT)m_hIcon;

pnid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP; 

//图标有效|自定义消息有效|鼠标指向显示文字有效

pnid.uCallbackMessage = WM_MYMESSAGE;

pnid.hIcon = m_hIcon;

strcpy(pnid.szTip,"局域网监控系统客户端");

4、为WM_MYMESSAGE添加消息响应函数:

BEGIN_MESSAGE_MAP(CClientDlg, CDialog)

ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)

ON_WM_SIZE()//窗口消息(在类向导中添加)

END_MESSAGE_MAP()

5、OnMyMessage函数的实现:

LRESULT CClientDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)

{

if (lParam == WM_LBUTTONDOWN)//如果在图标中单击左键则还原

{

Shell_NotifyIcon(NIM_DELETE,&pnid);//删除托盘图标

ShowWindow(SW_SHOWNORMAL);//显示主窗口

                                        //使窗口总是在最前面

this->SetWindowPos(&wndTopMost,0,0,0,0,

                                                           SWP_NOMOVE|SWP_NOSIZE);    

}

return 0;

}

6、在类向导中为对话框添加ON_WM_SIZE()消息,并实现OnSize函数

void CClientDlg::OnSize(UINT nType, int cx, int cy) 

{

CDialog::OnSize(nType, cx, cy);

if (nType==SIZE_MINIMIZED)//如果事件为最小化

   {

Shell_NotifyIcon(NIM_ADD,&pnid);//在托盘区添加图标

ShowWindow(SW_HIDE);//隐藏主窗口 

   }

}


本文出自 “沐铭” 博客,请务必保留此出处http://10437084.blog.51cto.com/10427084/1679031

最小化窗口到托盘区-VC++

标签:最小化到托盘区

原文地址:http://10437084.blog.51cto.com/10427084/1679031

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!