Common Controls(Comctl32.dll)版本问题导致Tooltip控件不能正常显示

在将WTL的Tooltip代码应用于vc++ 2005工程时,发现Tooltip无法正常显示。经过排查,问题源于TOOLINFO结构在不同环境下格式不一致,而工程实际链接的Comctl32.dll版本较旧。解决方案是使用匹配版本的commctrl.h或升级Comctl32.dll。提供了一段代码用于检查Common Controls的版本。
摘要由CSDN通过智能技术生成

这两天把一段WTL的Tooltip控件的代码应用到一个vc++ 2005的工程,工具

提示一直不能显示。用向导新建一个工程,这段代码一切正常。几经周折,发现

工具提示显示不出来的原因是因为CToolTipCtrl::AddTool()的返回值是FALSE,

或者说,工具提示没有跟我的要显示提示的控件关联上。CToolTipCtrl在

AddTool之前的代码主要是初始化TOOLINFO结构,这些初始化的代码看不出

明显的问题,而且同样的代码在新建的干净工程里面一切正常,查到这里,问题

陷入困局。所幸后来在研究TOOLINFO结构的过程中,从搜到的一个网页得到启发。

TOOLINFO的定义在commctrl.h里面,具体如下:

这个定义显示,环境不同的时候,TOOLINFO结构的格式不同。有问题的工程

里面,所使用的TOOLINFO的结构包含后面两个有条件的字段。但是工程实际<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值