You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10通知图标(Notification Icon)的BalloonTipText最大长度是多少

Win10 通知框(BalloonTip)长度限制及扩展方案

1. BalloonTip 文本最大长度

根据Win32 API中NOTIFYICONDATA结构体的定义,Win10下的气球通知有固定的长度上限:

  • 通知标题(对应szInfoTitle字段):最大长度为63个字符,超出部分会被系统自动截断
  • 通知正文(对应szInfo字段):最大长度为255个字符,超出部分同样会被系统截断
    你提供的代码里已经通过strPLCopy做了截断处理,逻辑符合系统字段长度要求。

2. 点击通知展示更长文本的实现方案

可以实现,通用实现逻辑如下:

  • 调用Shell_NotifyIcon时给NOTIFYICONDATA结构体的uFlags新增NIF_MESSAGE标识,同时给uCallbackMessage字段绑定自定义消息
  • 用户点击通知时,系统会发送你绑定的自定义消息到程序窗口过程,在消息响应逻辑里弹出自定义窗口(比如模态对话框、展开面板)即可展示任意长度的完整文本

你提供的基础实现代码可以按如下逻辑补充点击事件支持:

// 提前自定义通知点击消息常量
const WM_BALLOON_CLICK = WM_USER + 1001;

procedure ShowBalloonTips(info: string; title: string; timeout : integer = 3000);
var
  TipInfo, TipTitle: string;
begin
  IconData.cbSize := SizeOf(IconData);
  // 新增消息回调标识
  IconData.uFlags := NIF_INFO or NIF_MESSAGE;
  IconData.uCallbackMessage := WM_BALLOON_CLICK;

  TipInfo := info;
  strPLCopy(IconData.szInfo, TipInfo, SizeOf(IconData.szInfo) - 1);
  IconData.DUMMYUNIONNAME.uTimeout := timeout;
  TipTitle := title;
  strPLCopy(IconData.szInfoTitle, TipTitle, SizeOf(IconData.szInfoTitle) - 1);
  IconData.dwInfoFlags := NIIF_INFO;     //NIIF_ERROR;  //NIIF_WARNING;
  Shell_NotifyIcon(NIM_MODIFY, @IconData);
  IconData.DUMMYUNIONNAME.uVersion := NOTIFYICON_VERSION;
  Shell_NotifyIcon(NIM_SETVERSION, @IconData) ;
end;

// 主窗口中新增自定义消息响应逻辑
procedure WMBalloonClick(var Msg: TMessage); message WM_BALLOON_CLICK;
procedure TMainForm.WMBalloonClick(var Msg: TMessage);
begin
  // 点击通知时触发,此处可弹出自定义窗口展示完整长文本
  ShowMessage('这里可以放任意长度的完整文本内容');
end;

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:06:03