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.定位后的 ...
随机推荐
- python菜鸟学习: 11. 装饰器的基础用法
# -*- coding: utf-8 -*-# decorator# 定义:本质是函数,就是为其他函数添加附件功能# 原则:# 1.不能修改被装饰的函数的源代码# 2.不能修改被装饰的函数的调用方式 ...
- blog2对PTA4,5,6集的习题总结
一. 前言 通过本三次PTA得题目,我受益匪浅.题量的话不算太多,但是题目难度有些大.在本次PTA第六次题目集中,题目难度较中,第四次题目集第一道水文数据处理与第五次题目集的查询关键字出现次 ...
- 基于Vue项目+django写一个登录的页面
基于Vue项目+django写一个登录的页面 前端 借用了一下vue项目模板的AboutView.vue 页面组件 <template> <div class="about ...
- ubuntu 20.04使用kubeadm安装k8s集群
本文主要用于记录,步骤参考了:https://blog.csdn.net/weixin_44559544/article/details/123381441 一.设备相关准备 1.修改节点主机名,这样 ...
- uniapp获取位置
uni.getLocation({ type: 'gcj02', geocode: true, success: (res) => { uni.showModal({ title:JSON.st ...
- Scp 免密拷贝
为了图方便 想在更新主机服务的同时把应用同步到备机, 需做一下ssh 的公钥设置 详细见该链接 scp免密传输文件 - lucas-xie - 博客园 (cnblogs.com)
- WPF中获取主窗口 MainWindow 实例,以及在其他窗口中获取 MainWinodw 中的控件
var _mainWindow = Application.Current.Windows .Cast<Window>() .FirstOrDefault(window => win ...
- DOM DEM DLG DRG
以下有不同的说法,但是意思都很相近.一. DOM (数字正射影像图):利用数字高程模型对扫描处理的数字化的航空相片.遥感影像,经逐个像元纠正,按图幅范围裁切生成的影像数据,它的信息比较直观,具有良好的 ...
- 从FGUI中取一张图片并返回一个Sprite
从Fgui中的图集中取一个图素,把图素用到场景等非UI的地方. 此操作会动态创建一个Sprite对象,效率不好,不适合大量使用. private static Dictionary<string ...
- Kubernetes学习笔记(三)
[查看某个node上的pod] > kubectl get pods -o wide --namespace=kube-system | grep master-0 #node ...