托盘 MFC

来源:百度知道 编辑:UC知道 时间:2024/06/23 16:34:51
MFC建立的对话框程序,怎么让两个子窗口(也为对话框)共用一个托盘
最好有整套的源代码
1楼删除的办法我也想到了也用了,但是显示的时候托盘的右下角那里会闪一下不太好看3天没有更好的答案我就采纳吧 !

NOTIFYICONDATA m_tnid 设置成员函数

最后 OnDestroy()里 删除系统托盘 ::Shell_NotifyIcon(NIM_DELETE,&m_tnid);

//////////////////定义系统托盘///////////////////////////
m_tnid.cbSize=sizeof(NOTIFYICONDATA);//设置结构大小//
m_tnid.hWnd=this->m_hWnd;//设置图标对应的窗口
m_tnid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;//图标属性
m_tnid.uCallbackMessage=MYWM_NOTIFYICON;//应用程序定义的回调消息ID
////////////设置NOTIFYICONDATA结构///////////
CString szToolTip;
szToolTip=_T("CCTimer 2.5");
_tcscpy(m_tnid.szTip, szToolTip);//帮助信息
m_tnid.uID=IDR_MAINFRAME;//应用程序图标
HICON hIconx;
hIconx=AfxGetApp()->LoadIcon(IDI_ICON2);
m_tnid.hIcon=hIconx;//图标句柄
PNOTIFYICONDATA m_ptnid=&m_tnid;
::Shell_NotifyIcon(NIM_ADD,m_ptnid);//增加图标到系统盘
if(hIconx)::DestroyIcon(hIconx);

//////////////////////////////

/////////////////////////////
///////////////////////////

LRESULT CShutdownDlg::WindowProc(UINT mess