前些时间突然希望让LE能在Vista下运行,当时已知有几个情况不能正常运行:
1.菜单显示不正确
2.工具栏图标全部显示不正常,没有了透明效果
3.不能使用myacc.dll,也就是不能使用"页面元素过滤"的功能
第一项已经解决了,第三项可以屏蔽掉,剩下的是第二项.
我一直以为是ImageList_Draw 或 ImageList_Create 函数在Vista中有了新的变化,查遍了MSDN没有发现有什么特别.
纳闷之际,做了个测试程序,尝试在XP中编译了再在Vista中运行,岂料编译的exe文件在xp中运行起来也不正常了.这就更奇怪了,那为什么LE在xp下能正常呢?
无意间在测试程序的目录下放了一个manifest文件,运行,竟然显示正常了,喜.再放到Vista中,也显示正常了.于是才突然恍然大悟...
IDE环境中显示正常,是因为我在VB的安装目录下放了个manifest文件,编译好的LE显示正常是因为我将manifest文件放在了LE的资源文件里面了.ImageList能正常显示透明图标,版本应该是要6.0,而只有使用了manifest文件系统才会使用6.0的ImageList.
至此问题解决