您的位置:首页 > 运维架构 > Shell

pb10最小化到托盘乱码的解决方法!!!

2007-07-19 09:41 260 查看
接上一篇文章 

http://blog.csdn.net/myz002/archive/2007/07/17/1695113.aspx

loadimage成功了 载入图标也就成功了

在托盘那图片也显示成功了 但是有一个新问题出来了 图标的提示显示为乱码

查了好多资料 也有些解决方法 最常见的就是

---------------------------------

char mytips[64]

mydata.sztip = mytips

----------------------------------

----------------------------------

string A

A = "托盘程序"

for i = 1 to Lens(A)

      mydata.sztip = MidA(A,i)

next

----------------------------------

经测试都是不能成功的 还是提示一堆乱码

最终的问题是pb10中用的是Unicode字符集 而API中调用要用ANSI字符集(网上的观点,不知道准不准确)

这样解决的思路就是把提示字符转换成ANSI字符 查找pb函数 发现有一个ToAnsi函数 用上了以后发现提示:

Function "ToAnsi" is now obsoleted and will be removed in a future release

这个就不行了 再查资料 终于网络上有句话的提示起了作用 说:PB10 APi调用由于字符集的原因

需要在声明函数的时候 别名成...w  在这个程序中 就将显示图片的API函数 Shell_NotifyIcon 的声明改一改就好了

PUBLIC FUNCTION Integer Shell_NotifyIcon(Long dwMessage,Any lpData) LIBRARY "shell32" ALIAS FOR "Shell_NotifyIconW"

所以我的上一篇文章 loadimage的问题中 其实LoadImage函数的声明函数名是不一定要声明称LoadImageW的

只需要把别名做成LoadImageW就好了 不过真是不明白 这个和别名有什么关系 呵呵 但是确实能解决问题

圆满成功! 呵呵!最后说一下 我的pb版本是 10.2 可能不同版本有不同的解决方法 如此方法行不通 纯属正常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息