使用MFC实现WIN10的气泡提示
基本知识
首先介绍一下基本知识:
以下是NOTIFYICONDATA结构体,以及他们分别的含义。
/***该系统需要处理的任务栏状态区的消息***/
typedef struct _NOTIFYICONDATA { DWORD cbSize; //结构体的大小,以字节为单位 HWND hWnd; //窗口的句柄 UINT uID; //应用程序定义的任务栏图标的标识符 UINT uFlags; //此成员表明具体哪些其他成员为合法数据 UINT uCallbackMessage; //应用程序定++义的消息标示 HICON hIcon; //增加、修改或删除的图标的句柄 TCHAR szTip[64]; //指向一个以/0结束的字符串的指针 DWORD dwState; //Version 5.0,图标的状态 DWORD dwStateMask; //Version 5.0. 指明dwState成员的那些位可以被设置或者访问 TCHAR szInfo[256]; //指向一个以/0结束的字符串的指针,字符串的内容为气球提示内容 union { UINT uTimeout; //表示气球提示超时的时间,单位为毫秒,此时间后气球提示将消失 UINT uVersion; //用来设置使用Windows 95 还是 Windows 2000风格的图标消息接口 }; TCHAR szInfoTitle[64]; //指向一个以/0结束的字符串的指针。字符串的内容为气球提示的标题 DWORD dwInfoFlags; //设置此成员用来给气球提示框增加一个图标,增加的图标出现在气球提示标题的左侧 GUID guidItem; //保留 HICON hBalloonIcon; //用于Windows Vista或更高版本的自定义气球图标
} NOTIFYICONDATA, *PNOTIFYICONDATA;
————————————————
版权声明:本文为CSDN博主「一定要顶上去」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jhfyuf/article/details/83889749
以下是对结构体的简单赋值方法
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA); nid.hWnd=this->m_hWnd; nid.uID=IDR_MAINFRAME; nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP|NIF_INFO; nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称,注意:这里的消息是用户自定义消息 nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)); wcscpy_s(nid.szTip,_T("VC系统托盘程序"));//信息提示条为"计划任务提醒" wcscpy_s(nid.szInfo,_T("标题")); wcscpy_s(nid.szInfoTitle,_T("内容")); nid.dwInfoFlags=NIIF_INFO; nid.uTimeout=5000;
————————————————
版权声明:本文为CSDN博主「一定要顶上去」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jhfyuf/article/details/83889749
实现步骤
注意:此时已经完成mfc工程的创建,并添加了一个测试按钮。如下图:
第一步
1、添加Shellapi.h头文件,
2、添加两个全局变量,NOTIFYICONDATA nid和BOOL isNotify。nid纪录窗口的信息,逻辑变量是为了判断托盘是否已经出现。
注意:NOTIFYICONDATA结构体已经在头文件Shellapi.h中声明过了,无需再次声明,只要在使用过程中包含该头文件即可。
NOTIFYICONDATA nid;
BOOL isNotify;
在对话框的初始化OnInitDialog函数中为isNotify初始化。
isNotify=false;
第二步
头文件上面添加#define WM_SHOWTASK (WM_USER+n),注意n>100以上。
#define WM_SHOWTASK (WM_USER+n) //注意n换成数字,n的大小应大于100
第三步
实现弹出气泡的功能。
其中:OnBnClickedButton1是按键控件的名字,CqipaonewDlg是类的名字。
首先为nid赋值,
然后调用Shell_NotifyIcon(NIM_ADD,&nid)函数实现气泡的弹出与消失。
NIM_ADD:添加弹框
NIM_MODIFY:修改弹框
NIM_DELETE:删除弹框
void CqipaonewDlg::OnBnClickedButton1()
{ // TODO: 在此添加控件通知处理程序代码 if (!isNotify) { nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA); nid.hWnd=this->m_hWnd; nid.uID=IDR_MAINFRAME; nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP|NIF_INFO; nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称,注意:这里的消息是用户自定义消息 nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)); wcscpy_s(nid.szTip,_T("VC系统托盘程序"));//信息提示条为"计划任务提醒" wcscpy_s(nid.szInfo,_T("标题")); wcscpy_s(nid.szInfoTitle,_T("内容")); nid.dwInfoFlags=NIIF_INFO; nid.uTimeout=5000; Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标 } //AnimateWindow(1000,AW_HIDE|AW_BLEND); //可以缓慢消失窗口 // KillTimer(0); //ShowWindow(SW_HIDE);//隐藏主窗口
}
————————————————
版权声明:本文为CSDN博主「一定要顶上去」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jhfyuf/article/details/83889749
实现效果
参考网址
VC 系统托盘 气泡提示
Shell_NotifyIcon函数介绍
使用MFC实现WIN10的气泡提示相关推荐
- Arc Engine 中添加气泡提示框
一.在ArcMap中的定位操作 已知若干点的经纬度坐标,要求在地图中进行定位: 1.通过Tool >Add X Y data 定位点,注意选择地理坐标系下的wgs 1984坐标系: 2.定位后的 ...
- java 气泡_Java气泡提示功能实现
一个用Swing实现的java气泡提示效果. 运行效果如下图: package org.loon.swing.display; import java.awt.BorderLayout; import ...
- 计算机无法安装win10,win10系统电脑提示“windows安装无法继续”的还原步骤
win10系统使用久了,好多网友反馈说win10系统电脑提示"windows安装无法继续"怎么办的问题,非常不方便.有什么办法可以永久解决win10系统电脑提示"wind ...
- MFC的exe启动时提示应用程序配置不正确,应用程序未能启动错误
MFC的exe启动时提示应用程序配置不正确,应用程序未能启动错误 老姐笔记本中毒太深于病入膏肓,无奈迫写一程序"曲线救国".刚启动自己写的程序就出现应用程序配置不正确,应用程序未能 ...
- 数字气泡 php,vue指令如何实现气泡提示(附代码)
本篇文章给大家带来的内容是关于vue指令如何实现气泡提示(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 菜鸟学习之路 //L6zt github 自己 在造组件轮子,也就是 ...
- VC中实现弹出CEdit的气泡提示框
使用编辑框自带的气泡提示框,查看CEdit的源码能看到如下两个函数 AFX_INLINE BOOL CEdit::ShowBalloonTip(_In_z_ LPCWSTR lpszTitle, _I ...
- 计算机蓝屏代码0xc0000020,Win10运行程序提示“损坏的映像 错误0xc0000020”怎么解决?...
Win10运行程序提示"损坏的映像 错误0xc0000020"怎么解决?很多用户在Win10系统下运行软件时,会出现损坏的映像提示框,内容显示为"C:\xx\xxx.dl ...
- java 气泡 提示插件_Java气泡提示功能实现
Java气泡提示功能实现 package org.loon.swing.display; import java.awt.BorderLayout; import java.awt.Color; im ...
- 服务器开机提示修复,电脑开机提示自动修复怎么办?win10电脑开机提示自动修复教程...
我们在使用电脑的时候,开机后一般都会进入桌面.但有时候打开电脑后提示自动修复,显示电脑未能正确启动.电脑开机提示自动修复怎么办?下面就让小编为大家带来win10电脑开机提示自动修复教程. 首先大家一定 ...
最新文章
- LogisticRegression_demo
- 【Netty】使用 Netty 开发 HTTP 服务器 ( HTTP 请求过滤 )
- javaScript Code 用javascript确定每月第二个星期五
- 诺基亚n73支持java_JAVA性能 vs 诺基亚N71、E61_诺基亚 N73_手机其它OS-中关村在线
- tomcat服务器配置优化
- 1.5封装数组之改进为泛型数组
- 2022大厂高频面试题之CSS篇
- wince怎么刷carplay_carplay wince安装版
- object类型转换为int类型
- vscode下载与安装,解决安装包下载慢问题
- Py正则表达式学习笔记:常用函数——单词检索、索引方法
- 【学习笔记】黑马程序员Java课程学习笔记(更新至第12章---集合)
- 仿射变换(Affine Transformation)原理及应用(1)
- android activity 旋转,Android 设定横屏,禁止屏幕旋转,Activity重置
- 奋斗者——一个高级咨询师是怎样炼成的
- Selection dont contain a main type
- 数字ic设计流程以及相关工具
- 1、计算机毕业设计论文分析-班主任管理系统
- KBL410-ASEMI整流桥,KBL410规格书,KBL410机械数据
- MediaPlayer( 媒体播放器),TelephonyManager(电话管理类),MediaRecorder(媒体录音机)