MFC系统通知栏气泡

首先,要在工程的targetver.h头文件里面添加以下代码

#pragma once
#include <winsdkver.h>
// 包括 SDKDDKVer.h 将定义最高版本的可用 Windows 平台。
// 任务栏气泡要修改这个文件
// 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
// WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
#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
#include <SDKDDKVer.h>

然后创建:

通知栏显示图标

BOOL setupTrayIcon()
{
	m_nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);  
	m_nid.hWnd=this->m_hWnd;  
	m_nid.uID=IDR_MAINFRAME;  
	m_nid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
	//m_nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称,注意:这里的消息是用户自定义消息  
	m_nid.hIcon=m_hIcon;
	strcpy_s(m_nid.szTip,128,"name");
	SetWindowLong(m_hWnd,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
	return Shell_NotifyIcon(NIM_ADD,&m_nid);//在托盘区添加图标
}
提示气泡
BOOL showToolTip(LPCTSTR szMsg,LPCTSTR szTitle)
{
	m_nid.uFlags = NIF_INFO;
	m_nid.uID=IDR_MAINFRAME;
	m_nid.dwInfoFlags=1;
	strcpy_s(m_nid.szInfoTitle,64,szTitle);
	CString str;
	strcpy_s(m_nid.szInfo,256,szMsg);
	return Shell_NotifyIcon(NIM_MODIFY,&m_nid);
}
即可

你可能感兴趣的:(MFC系统通知栏气泡)