ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Delphi实现Windows的气泡提示样式

2019-07-01 16:00:09  阅读:276  来源: 互联网

标签:Windows FsysIcon NIF 气球 提示 UINT 气泡 Delphi 图标


其实也不复杂,主要使用到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类型.

标签:Windows,FsysIcon,NIF,气球,提示,UINT,气泡,Delphi,图标
来源: https://www.cnblogs.com/Coder-MIFir/p/11114541.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有