在一个地方创建该dialog
it->second = new CChatDlg();
it->second->m_szChatRecord = *pChat;
it->second->m_id = nID;
it->second->Create(IDD_DIALOG_CHAT);
it->second->SetWindowTextW(pName);
it->second->ShowWindow(SW_SHOWNORMAL);
在dialog.cpp中
#define WM_NOTIFYICON WM_USER+99
NOTIFYICONDATA nd;
自己添加消息响应函数
ON_MESSAGE(WM_NOTIFYICON, ShowTask)
在OnInitDialog()
nd.cbSize = sizeof (NOTIFYICONDATA);
nd.hWnd = m_hWnd;
nd.uID = IDR_MAINFRAME;
nd.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
nd.uCallbackMessage = WM_NOTIFYICON;
nd.hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME));
lstrcpy(nd.szTip, _T("我的托盘"));
Shell_NotifyIcon(NIM_ADD, &nd);
在OnDestroy()
Shell_NotifyIcon(NIM_DELETE, &nd);
双击响应托盘图标
LRESULT CFriendReqDlg::ShowTask(WPARAM wParam, LPARAM lParam)
{
if (wParam != IDR_MAINFRAME)
return 1;
switch (lParam)
{
case WM_LBUTTONDBLCLK://双击左键的处理
{
this->ShowWindow(SW_SHOWNORMAL);//简单的显示主窗口
}
break;
}
return 0;
}