不彈出氣泡的問題在targetver.h頭文件中
將0x0600都改成0x0501 ,如下所示:
#pragma once
// 以下宏定義要求的最低平臺。要求的最低平臺
// 是具有運行應用程序所需功能的 Windows、Internet Explorer 等產品的
// 最早版本。通過在指定版本及更低版本的平臺上啟用所有可用的功能,宏可以
// 正常工作。
// 如果必須要針對低于以下指定版本的平臺,請修改下列定義。
// 有關不同平臺對應值的最新信息,請參考 MSDN。
#ifndef WINVER????????????????????????? // 指定要求的最低平臺是 Windows Vista。
#define WINVER 0x0501?????????? // 將此值更改為相應的值,以適用于 Windows 的其他版本。
#endif
#ifndef _WIN32_WINNT??????????? // 指定要求的最低平臺是 Windows Vista。
#define _WIN32_WINNT 0x0501???? // 將此值更改為相應的值,以適用于 Windows 的其他版本。
#endif
#ifndef _WIN32_WINDOWS????????? // 指定要求的最低平臺是 Windows 98。
#define _WIN32_WINDOWS 0x0410 // 將此值更改為適當的值,以適用于 Windows Me 或更高版本。
#endif
#ifndef _WIN32_IE?????????????????????? // 指定要求的最低平臺是 Internet Explorer 7.0。
#define _WIN32_IE 0x0700??????? // 將此值更改為相應的值,以適用于 IE 的其他版本。
#endif
在CWnd::OnSize中確定是否觸發最小化并隱藏窗口,添加系統托盤
if(nType==SIZE_MINIMIZED)
{
NOTIFYICONDATA m_Htnd;
m_Htnd.cbSize = sizeof(NOTIFYICONDATA);
m_Htnd.hWnd = this->m_hWnd;
m_Htnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
m_Htnd.uCallbackMessage = WM_MYMESSAGE;
m_Htnd.hIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
m_Htnd.uID = IDR_MAINFRAME;
wcscpy_s(m_Htnd.szTip,_T("托盤示例"));
Shell_NotifyIcon(NIM_ADD,&m_Htnd);
ShowWindow(SW_HIDE);
ShowInfo();
}
void CTimingDlg::ShowInfo()
{
m_Htnd.cbSize = sizeof(NOTIFYICONDATA);
m_Htnd.hWnd = GetSafeHwnd();
m_Htnd.uFlags = NIF_INFO;
m_Htnd.uID=IDR_MAINFRAME;
m_Htnd.dwInfoFlags=1;
m_Htnd.uTimeout = 3000;
wcscpy(m_Htnd.szInfoTitle,_T("氣泡標題"));
wcscpy(m_Htnd.szInfo,_T("氣泡內容"));
Shell_NotifyIcon(NIM_MODIFY,&m_Htnd);
}