奇怪的问题,想了很多可能的理由,最终的答案竟然是一开始就被我否认了的一种可能!!

问题现象:
调用Shell_NotifyIcon,在Vista和Windows 7上可以正常显示托盘的Balloon ToolTips,但在XP下却不行,而且函数返回值和GetLastError都正常。
 
问题的原因:
1、有问题的系统版本声明:
 1 // 是具有运行应用程序所需功能的 Windows、Internet Explorer 等产品的

 2 // 最早版本。通过在指定版本及更低版本的平台上启用所有可用的功能,宏可以

 3 // 正常工作。

 4 // 如果必须要针对低于以下指定版本的平台,请修改下列定义。

 5 // 有关不同平台对应值的最新信息,请参考 MSDN。

 6 #ifndef WINVER                          // 指定要求的最低平台是 Windows Vista。

 7 #define WINVER 0x0600           // 将此值更改为相应的值,以适用于 Windows 的其他版本。

 8 #endif

 9 #ifndef _WIN32_WINNT            // 指定要求的最低平台是 Windows Vista。

 #define _WIN32_WINNT 0x0600     // 将此值更改为相应的值,以适用于 Windows 的其他版本。

 #endif

 #ifndef _WIN32_WINDOWS          // 指定要求的最低平台是 Windows 98。

 #define _WIN32_WINDOWS 0x0410 // 将此值更改为适当的值,以适用于 Windows Me 或更高版本。

 #endif

 #ifndef _WIN32_IE                       // 指定要求的最低平台是 Internet Explorer 7.0。

 #define _WIN32_IE 0x0700        // 将此值更改为相应的值,以适用于 IE 的其他版本。

 #endif

2、没问题的系统版本声明

 1 // 是具有运行应用程序所需功能的 Windows、Internet Explorer 等产品的
 2 // 最早版本。通过在指定版本及更低版本的平台上启用所有可用的功能,宏可以
 3 // 正常工作。
 4 // 如果必须要针对低于以下指定版本的平台,请修改下列定义。
 5 // 有关不同平台对应值的最新信息,请参考 MSDN。
 6 #ifndef WINVER                          // 指定要求的最低平台是 Windows XP。
 7 #define WINVER 0x0500           // 将此值更改为相应的值,以适用于 Windows 的其他版本。
 8 #endif
 9 #ifndef _WIN32_WINNT            // 指定要求的最低平台是 Windows XP。
 #define _WIN32_WINNT 0x0501     // 将此值更改为相应的值,以适用于 Windows 的其他版本。
 #endif
 #ifndef _WIN32_WINDOWS          // 指定要求的最低平台是 Windows 98。
 #define _WIN32_WINDOWS 0x0410 // 将此值更改为适当的值,以适用于 Windows Me 或更高版本。
 #endif
 #ifndef _WIN32_IE                       // 指定要求的最低平台是 Internet Explorer 5.0。
 #define _WIN32_IE 0x0501        // 将此值更改为相应的值,以适用于 IE 的其他版本。

17 #endif

小结:

这是我第一次遇到这个问题,而且花了差不多一个早上来找原因,要记下这个问题。

出现这个问题是有原因的,我用的vs2008,版本声明是IDE帮我自动生成的;而我使用的是windows7,测试这个功能也一直没问题,在我的vista虚拟机下测试也是对的,想不到的是XP下竟然有这个问题。

还是那句老话:要对自己的每一行代码负责。(哪怕是IDE帮你生成的)

托盘在XP下不能显示tooltip,在Vista和Windows7下正常的更多相关文章

  1. 【原创】webbluetoorh 在windows下无法显示搜索列表,在mac下正常的解决办法

    google webbluetooth在windows下不能弹出设备搜索列表提示“Web Bluetooth API is not available”,因为webbluetooth是google新推 ...

  2. DataGridView单元格内容自动匹配下拉显示

    页面显示数据使用的控件是ComponentFactory.Krypton.Toolkit中的KryptonDataGridView控件.在指定“商品”单元格中需要根据用户输入内容自动匹配数据库中商品信 ...

  3. C++ CEF 浏览器中显示 Tooltip(标签中的 title 属性)

    在 Windows 中将 CEF 集成到 C++ 客户端以后,默认是无法显示 tooltip 的,比如图片标签中的 title 属性. 实现的方式其实很简单,按下面的步骤操作就可以: 创建一个文本文件 ...

  4. JFreechart在linux下不显示及中文乱码问题

    一.使用JFreeChart建的报表,在window下能正常显示,但是放到linux下就报错,而且有时候会把tomcat挂掉, 原因是jfreechart的在linux系统中需要访问java awt库 ...

  5. QAbstractItemView为截断的项显示ToolTip(在eventFilter函数里覆盖QEvent::ToolTip事件)

    在Qt中想要为QAbstractItemView中长度不够而使得内容被截断的项显示ToolTip,Qt官网有一篇文章介绍使用事件过滤器来显示太长的项,但是没有涵盖图标的情况.显示列头项太长的情况等等, ...

  6. QAbstractItemView为截断的项显示ToolTip(使用事件过滤)

    在Qt中想要为QAbstractItemView中长度不够而使得内容被截断的项显示ToolTip,Qt官网有一篇文章介绍使用事件过滤器来显示太长的项,但是没有涵盖图标的情况.显示列头项太长的情况等等, ...

  7. 完美解决,浏览器下拉显示网址问题 | 完美解决,使用原生 scroll 写下拉刷新

    在 web 开发过程中我们经常遇到,不想让用户下拉看到我的地址,也有时候在 div 中没有惯性滚动,就此也出了 iScroll 这种关于滚动条的框架,但是就为了一个体验去使用一个框架好像又不值得,今天 ...

  8. windows7下php5.4成功安装imageMagick,及解决php imagick常见错误问题。(phpinfo中显示不出来是因为:1.imagick软件本身、php本身、php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个文件放到/php/目录下面)

    windows7下   php5.4成功安装imageMagick . (phpinfo中显示不出来是因为:1.软件本身.php本身.php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个 ...

  9. css 图片内容在不同分辨率下居中显示(演示的图片宽度是1920px,当图片宽度大于显示屏的宽度时)

    1.img 图片内容在不同分辨率下居中显示(如果隐藏多余,在img外面套一个div  设定overflow: hidden.div的大小就是img显示区域的大小) <!DOCTYPE html& ...

随机推荐

  1. 常用T-CODE ,快捷键

    RSA1 --主界面. RSA8 --后台处理数据源和层次结构,很少使用 RSRT --QUERY 测试  .输入技术名称查询即可 RSRV--分析修复BW对象 RSMO --信息包监测. 检查处理链 ...

  2. 仿QQ撒花特效--第三方开源--FllowerAnimation

    点此下载资源 xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

  3. Tomcat_总结_01_tomcat环境搭建

    一.准备条件 1.安装jdk 二.安装tomcat 1.下载tomcat 去官网下载  64-bit Windows zip  版本的tomcat,并解压 https://tomcat.apache. ...

  4. svn 服务器安装包下载地址

    svn 服务器安装包下载地址 https://www.visualsvn.com/server/download/

  5. 使用open_read_write等底层函数来赋值一个文件

    /* * 该程序是练习read(),write(),open(),create(),close(),lseek()等函数. *  * 该程序的处理思路: *  1: 在程序所在的目录去打开一个文件,如 ...

  6. 以前的实验博客地址,以前使用csdn

    实验一木马分析(隐藏分析)实验 http://blog.csdn.net/qq_30600405/article/details/78360599 实验二木马分析(控制分析)实验和实验三冰河木马实验 ...

  7. LeetCode Relative Ranks

    原题链接在这里:https://leetcode.com/problems/relative-ranks/#/description 题目: Given scores of N athletes, f ...

  8. 【java规则引擎】简单规则的rete网络示意图

    一个Fact通过Session添加到规则网络中,如何进行规则匹配的大致过程如下 (1)通过根结点对象从EntryPointNode的Map集合中找到相应的EntryPointNode对象 (2)Ent ...

  9. 【LeetCode】005. Longest Palindromic Substring

    Given a string s, find the longest palindromic substring in s. You may assume that the maximum lengt ...

  10. 自编jQuery插件实现模拟alert和confirm

    现在绝大多数网站都不用自带的alert和confirm了,因为界面太生硬了.因此这个插件就这样产生了自己定制一个的想法...... 啥也不说,先上图,有图有真相 :) 现在绝大多数网站都不用自带的al ...