error C2440: 无法从“BOOL ( CDrawView::* )(NMCSBCUSTOMDRAW *)”转换为“BOOL (CCmdTarget::* )(NMHDR *)

本文详细阐述了在将项目从VC6迁移至VS2010时遇到的错误问题,即在处理ON_NOTIFY_REFLECT_EX的NMCSBCUSTOMDRAW时出现的类型转换错误。通过简单的修改函数调用方式,即从使用NMCSBCUSTOMDRAW*到NMHDR*,成功解决了这一问题。文章提供了具体解决步骤和参考链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 今天将一个项目由vc6转到vs2010下面总是出现下面的问题

       ON_NOTIFY_REFLECT_EX的NMCSBCUSTOMDRAW老是提示错误error C2440: “static_cast”: 无法从“BOOL (__thiscall CDrawView::* )(NMCSBCUSTOMDRAW *,LRESULT *)”转换为“BOOL (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)”
1> 在匹配目标类型的范围内没有具有该名称的函数

 

解决方法:

将BOOL CDrawView::OnScrollNotify( NMCSBCUSTOMDRAW *nm , LRESULT* result )改为BOOL CDrawView::OnScrollNotify( NMHDR* pNMHDR, LRESULT* result )
{
 NMCSBCUSTOMDRAW* nm =  reinterpret_cast<NMCSBCUSTOMDRAW*>(pNMHDR);  

...............................(其他代码省略)

}

 

解决方法参考自:http://hi.baidu.com/3582077/blog/item/e68cff8fdb3d72f6f01f36b0.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值