zoukankan      html  css  js  c++  java
  • 托盘在XP下不能显示tooltip,在Vista和Windows7下正常

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

    问题现象:
    调用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下竟然有这个问题。

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


  • 相关阅读:
    Atitit.Java exe bat  作为windows系统服务程序运行
    Atitit. Object-c语言 的新的特性  attilax总结
    Atitit. Object-c语言 的新的特性  attilax总结
    Atitit。Time base gc 垃圾 资源 收集的原理与设计
    Atitit。Time base gc 垃圾 资源 收集的原理与设计
    Atitit.go语言golang语言的新的特性  attilax总结
    Atitit.go语言golang语言的新的特性  attilax总结
    Atitit.pdf 预览 转换html attilax总结
    Atitit.pdf 预览 转换html attilax总结
    Atitit.office word  excel  ppt pdf 的web在线预览方案与html转换方案 attilax 总结
  • 原文地址:https://www.cnblogs.com/hdtianfu/p/3498333.html
Copyright © 2011-2022 走看看