首先在初始化程序中添加如下代码:
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
/*****略****/
CString title;
title.Format("提示信息");
//添加系统托盘
char lpszTip[256];
strcpy(lpszTip,title);
NOTIFYICONDATA data;
data.cbSize = sizeof(NOTIFYICONDATA);
data.hWnd = m_hWnd;
lstrcpyn(data.szTip,lpszTip,sizeof(lpszTip));
data.uCallbackMessage = WM_TEST;
data.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
Shell_NotifyIcon(NIM_ADD,&data);
return TRUE; // return TRUE unless you set the focus to a control
}
添加消息
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
ON_MESSAGE(WM_TEST,OnTest)
END_MESSAGE_MAP()
.h 中添加
afx_msg void OnTest(WPARAM wParam, LPARAM lParam);
.cpp中添加消息响应函数
void CTestDlg::OnTest(WPARAM wParam, LPARAM lParam)
{
UINT uMouseMsg = (UINT) lParam;
if(uMouseMsg == WM_RBUTTONDOWN)
{
CMenu* pPopup = m_Menu.GetSubMenu(0);
CPoint point;
GetCursorPos(&point);
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_VERTICAL,
point.x,point.y,AfxGetApp()->m_pMainWnd,TPM_LEFTALIGN);
}
if(uMouseMsg == WM_LBUTTONDBLCLK) //双击鼠标
{
ShowWindow(SW_SHOWNOACTIVATE); //恢复窗口的显示
}
}