托盘在XP下不能显示tooltip,在Vista和Windows7下正常

转载地址:http://blog.csdn.net/debehe/article/details/4294053

 

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

问题现象:

调用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。 
  10. #define _WIN32_WINNT 0x0600     // 将此值更改为相应的值,以适用于 Windows 的其他版本。 
  11. #endif 
  12. #ifndef _WIN32_WINDOWS          // 指定要求的最低平台是 Windows 98。 
  13. #define _WIN32_WINDOWS 0x0410 // 将此值更改为适当的值,以适用于 Windows Me 或更高版本。 
  14. #endif 
  15. #ifndef _WIN32_IE                       // 指定要求的最低平台是 Internet Explorer 7.0。 
  16. #define _WIN32_IE 0x0700        // 将此值更改为相应的值,以适用于 IE 的其他版本。 
  17. #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。 
  10. #define _WIN32_WINNT 0x0501     // 将此值更改为相应的值,以适用于 Windows 的其他版本。 
  11. #endif 
  12. #ifndef _WIN32_WINDOWS          // 指定要求的最低平台是 Windows 98。 
  13. #define _WIN32_WINDOWS 0x0410 // 将此值更改为适当的值,以适用于 Windows Me 或更高版本。 
  14. #endif 
  15. #ifndef _WIN32_IE                       // 指定要求的最低平台是 Internet Explorer 5.0。 
  16. #define _WIN32_IE 0x0501        // 将此值更改为相应的值,以适用于 IE 的其他版本。 
  17. #endif 

小结:

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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值