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

问题现象:
调用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. hzau 1204 Escape from the Darkness

    1204: Escape from the Darkness Time Limit: 1 Sec  Memory Limit: 1280 MBSubmit: 93  Solved: 3[Submit] ...

  2. linux(ubuntu16.04)下安装和破解pycharm专业版

    我用的linux 版本是ubuntu,查看版本命令是: lsb_release -a 因为学习Python爬虫,pycharm是Python很好用的IDE,但是专业版需要付费,所以开始安装: 首先在官 ...

  3. New Concept English three (59)

    24 45 People tend to amass possessions, sometimes without being aware of doing so. Indeed they can h ...

  4. loj#6566. 月之都的密码

    搜交互题搜到的... 竟然还有这么水的交互题,赶紧过了再说 交互库里有一个 $[1,n]$ 到 $[1,n]$ 的双射 你可以调用 $encode(k,a[])$ 询问左边的一个大小为 $k$ 的集合 ...

  5. angularjs控制输入框只输入数字及最多输入两位小数

    ps:示例中作用在循环中,其它的你可以按实际需求进行修改使用 <input type="text" ng-model="item.productNumber&quo ...

  6. AfxExtractSubString 函数的相关问题

    AfxExtractSubString函数的用法 注:本文系rainy8758原创,转载请注明出处:http://blog.hjenglish.com/rainy8758/articles/10109 ...

  7. Dos简单命令

    1.cmd命令进入某个目录,具体教程:http://blog.csdn.net/aidenliu/article/details/5390113 (注意的是:切换目录时不能直接cmd D:\Nancy ...

  8. Git 之Windows环境下学习系列

    Git .SVN .TFS   相同点 不同点 Git     版本控制 优点: 分布式版本控制.无需联网就能版本提交 开源 缺点 入门学习难度高 SVN   优点: 集中式版本控制. 个人开源 缺点 ...

  9. linux设置支持中文

    LANG="zh_CN.UTF-8" #LANG="zh_CN.GB18030" #LANG=en_US.UTF-8 LANGUAGE="zh_CN. ...

  10. iphone配置实用工具iPhone Configuration Utility

    下载地址 http://support.apple.com/kb/DL1466 安装完毕后,在设备->控制台,可以很方便看到报错信息