Delphi实现Windows的气泡提示样式
其实也不复杂,主要使用到shellAPI下的TNotifyIconData这个结构体:
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;   
具体怎么用,给个函数 ->
procedure FillDataStructureandCreate(shint:string;dwFlags:Cardinal);
begin
with FsysIcon do begin
cbSize:=SizeOf(TNotifyIconData);
Wnd:=Handle;
uID:=Application.Icon.Handle;
uFlags:=NIF_MESSAGE or NIF_ICON or NIF_TIP or NIF_INFO;
hIcon:=Application.Icon.Handle;
StrPCopy(szInfoTitle,'标题');
StrPCopy(szInfo,shint);//shint为内容
dwInfoFlags:=dwFlags;//提示的图标
uCallbackMessage:=CM_ICONDATA; //自定义的消息处理函数
uTimeout:=15;
uVersion:=NOTIFYICON_VERSION_4;
end;
end;
调用
首先得添加
      FillDataStructureandCreate('右击重新显示窗体',NIIF_INFO);
      Shell_NotifyIcon(NIM_ADD,@FsysIcon);
自定义提示
        FillDataStructureandCreate('服务已启动',NIIF_INFO);
        Shell_NotifyIcon(NIM_MODIFY,@FsysIcon);
最后用完删除
Shell_NotifyIcon(NIM_DELETE,@FsysIcon);
其中 FsysIcon是TNotifyIconData类型.
Delphi实现Windows的气泡提示样式的更多相关文章
- jquery.validate.unobtrusive.js实现气泡提示mvc错误
		改写jquery.validate.unobtrusive.js实现气泡提示mvc错误 个人对于这个js.css不是很擅长,所以这个气泡提醒的样式网上找了下,用了这个http://www.cnblog ... 
- iOS 灵活,简易,扩展性强的气泡提示框LFBubbleView(含源码)
		一.效果图 二.使用方法 使用简单,4行代码集成. _bubbleView = [[LFBubbleView alloc] initWithFrame:CGRectMake(, , , )]; _bu ... 
- 气泡提示 纯CSS
		tooltip(气泡提示) 依赖 脚本文件:CalvinTip.js 样式文件:toolTip.css 参数 elems HTMLNode 必须 气泡提示的元素 options Object 可选 多 ... 
- Asp.net Mvc 表单验证(气泡提示)
		将ASP.NET MVC或ASP.NET Core MVC的表单验证改成气泡提示: //新建一个js文件(如:jquery.validate.Bubble.js),在所有要验证的页面引用 (funct ... 
- Tippy.js - 免费开源且高度可定制的气泡提示独立组件
		推荐一个非常优秀的 web 气泡提示独立UI组件. 介绍 Tippy.js 是一款用于Web的完整工具提示,弹出菜单,下拉菜单和菜单解决方案.适用于鼠标,键盘和触摸输入. 特点 超轻量的纯 javas ... 
- CSS实现自定义手型气泡提示
		实现自定义的手型气泡提示 <html> <head> <meta charset="utf-8"> <title></titl ... 
- C#之使用NotifyIcon实现任务栏托盘菜单,图标闪烁效果及气泡提示
		很多程序是只需要后台运行的,甚至不需要自己的应用界面.NotifyIcon提供了程序在任务栏的显示功能 程序下载链接如下: http://download.csdn.net/detail/u01031 ... 
- php--validate错误信息提示样式
		//validate 错误信息提示样式 可以提示错误信息 可以使用jq 自带的属性改变错误的显示的位置,其中element是验证未通过的当前表单元素,error为错误后的提示信息 [注意]:放的位 ... 
- (Delphi) Windows 32 API程序设计目录
		这里所有程序均使用Delphi调用Windows 32 API方式实现,并不是使用VCL已经封装好的类实现的! (一)第一个窗口程序 01 创建第一个窗口. 
- Arc Engine 中添加气泡提示框
		一.在ArcMap中的定位操作 已知若干点的经纬度坐标,要求在地图中进行定位: 1.通过Tool >Add X Y data 定位点,注意选择地理坐标系下的wgs 1984坐标系: 2.定位后的 ... 
随机推荐
- 阿里云centos7搭建docker,拉取镜像外网访问不通的问题排查
			最近新买了一个阿里云服务器,用docker安装了mysql,外网死活连接不上我的mysql,最终经过一顿猛百度查问题,找出问题根源.对这次查问题过程中出现的问题也有一些心得,也小小记录一下复盘总结. ... 
- Spring 自定义注解 操作日志
			1.自定义注解 package com.jay.demo3.aop1.myannotation; import java.lang.annotation.Documented; imp ... 
- TCP三次握手四次挥手内容及步骤
			TCP特性 1.工作在传输层 2.面向连接的协议 3.全双工协议 4.半关闭 5.错误检查 6.将数据打包成段,排序 7.确认机制 8.数据恢复.重传 9.流量控制.滑动窗口 10.拥塞控制,慢启动和 ... 
- 软件开发流程-路飞项目需求- pip永久换源-虚拟环境-路飞项目前后端创建-包导入-后端项目调整目录
			目录 软件开发流程-路飞项目需求- pip永久换源-虚拟环境-路飞项目前后端创建-包导入-后端项目调整目录 今日内容概要 今日内容详细 1 软件开发流程 2 路飞项目需求 3 pip永久换源 4 虚拟 ... 
- SQL正则查询--查询有效邮箱
			用户表: Users +---------------+---------+| Column Name | Type |+---------------+---------+| user_id | i ... 
- 16.SharedPreferences存储
			1.SharedPreferences存储 不同于文件的存储方式,SharedPreferences是使用键值对的方式来存储数据的,保存为.xml文件. 也就是说当保存一条数据的时候,需要给这条数据提 ... 
- 使用go自定义生成项目LISENSE(授权协议)
			需要使用一个使用go开发的工具,叫license,在Windows下安装这个工具,请确保你使用的go sdk是1.16以上的版本,然后执行下面的命令: go install github.com/ni ... 
- Springboot 和hutool文件上传下载
			1.放开上传限制 servlet: multipart: enabled: true #默认支持文件上传 max-file-size: -1 #不做限制 max-request-size: -1 #不 ... 
- linux下进程通信总结
			信号: 信号是通知发生了某种事件的机制,内核和进程都可能会向进程发送各种信号,进程也可以向自己发送信号.系统定义了一组标准信号类型,每种信号都拥有唯一的数值和用途.典型的信号递送是异步的,意味着进程可 ... 
- 【rocky linux】firewalld切换到iptables 以及Failed to start IPv4 firewall with iptables.
			关闭[firewalld],安装iptables并启动 #关闭自带 firewall systemctl stop firewalld systemctl mask firewalld#显示当前 fi ... 
