无法从“void (__thiscall CtestDlg::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
按照孙鑫的教程添加自定义消息时,如果是VC6.0开发环境,也许没有什么
问题,但在VS2008中编译会报错的
无法从"void (__thiscall CtestDlg::* )(void)"转换为"LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)"
这是因为VS2008中消息返回值不允许为void,且消息参数不能为空,消息映射三处分别如下
#define UM_MYMESSAGE (WM_USER + 1)
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
ON_MESSAGE(UM_MYMESSAGE, OnMyMessage)
LRESULT CtestDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
return 1;
}
注意红色部分:VC6.0中LRESULT可以为void,且wParam, lParam参数可以不写,
但在VS2008中必须按上面方式写,即使你不使用wParam, lParam参数,没有返回值。
无法从“void (__thiscall CtestDlg::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”的更多相关文章
- c语言-error C2440: “static_cast”: 无法从“UINT (__thiscall CHyperLink::* )(CPoint)”转换为“LRESULT (__thiscall CWnd::* )(CPoint)”
		出现这个错误的原因可是“人力不可抗拒”之原因造成的,因为旧版本的 ON_WM_NCHITTEST 宏使用了 UINT (__thiscall CWzButton::* )(CPoint); 类型的类成 ... 
- error C2440: “static_cast”: 无法从“LRESULT (__thiscall CTextProgressCtrl::* )(UINT,LPCTSTR)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)
		转自原文 error C2440 “static_cast” 无法从“void (__thiscall C* )(void)... error C2440: “static_cast”: 无法从“LR ... 
- error C2440: 'static_cast' : cannot convert from 'UINT (__thiscall CStaticLink::* )(CPoint)' to 'LRESULT (__thiscall CWnd::* )(CPoint) (转)
		原文转自 http://blog.csdn.net/yinxing408033943/article/details/7601698 解决方法: 找到 UNIT CStaticLink::OnNcH ... 
- error C2440 “static_cast” 无法从“void (__thiscall C* )(void)...
		1.VC6中,说可以把函数在头文件中定义为:afx_msg void OnProgress()这样 但是在VS2005及以上,要求很严格,必须函数返回值为LRESULT类型,所以在VS2005及以上, ... 
- ON_WM_TIMER() void (__cdecl xx::* )(UINT)”转换为“void (__cdecl CWnd::* )(UINT_PTR)
		ON_WM_TIMER()在编译器从32位转换为64位的时候, 出现的问题; class CFlatComboBox : public CComboBox (基类为CWnd) 为了重载CWnd的 ... 
- void类型及void指针
		1.概述 许多初学者对C/C 语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.本文将对void关键字的深刻含义进行解说,并 详述void及void指针类型的使用方法与技巧. 2 ... 
- C语言之void类型及void指针                                                    分类:            C/C++             2015-07-13 11:24    8人阅读    评论(0)    收藏
		原文网址:http://www.cnblogs.com/pengyingh/articles/2407267.html 1.概述 许多初学者对C/C 语言中的void及void指针类型不甚理解,因此在 ... 
- void (*f(int, void (*)(int)))(int) 函数解析 转
		今天与几个同学看到了一个函数指针定义: void (*f(int, void (*)(int)))(int) 以前在C trap pit fails里面见过,但是文章里面介绍的很详细,但是往往使初学者 ... 
- void (*f(int, void (*)(int)))(int) 函数解析
		函数指针 今天与几个同学看到了一个函数指针定义: void (*f(int, void (*)(int)))(int) 以前在C trap pit fails里面见过,但是文章里面介绍的很详细,但是往 ... 
随机推荐
- DevOps 解决方案 - 腾讯云
			DevOps 解决方案 - 腾讯云 https://cloud.tencent.com/solution/devops?from=qcloudHpHeaderDevops 
- STM32 UART DMA实现未知数据长度接收
			串口通信是经常使用到的功能,在STM32中UART具有DMA功能,并且收发都可以使用DMA,使用DMA发送基本上大家不会遇到什么问题,因为发送的时候会告知DMA发送的数据长度,DMA按照发送的长度直接 ... 
- Revit API创建详图视图
			start //创建详图视图 Transaction ts = new Transaction(doc, "http://greatverve.cnblogs.com"); ts. ... 
- Revit API移动风管
			移动风管曲线就可以移动风管 , , ));//向上移动3 ts.Commit(); return Result.Succeeded; } } url:http: ... 
- How do I debug a published XBAP file in VS2010?
			I need to debug a full-trust application either by specifying a URL or, ideally, from within the web ... 
- 在ASP.NET Web API中使用OData的Action和Function
			本篇体验OData的Action和Function功能.上下文信息参考"ASP.NET Web API基于OData的增删改查,以及处理实体间关系".在本文之前,我存在的疑惑包括: ... 
- ASP.NET Web API基于OData的增删改查,以及处理实体间关系
			本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先是比较典型的一对多关系,Supplier和Product. public class Product { ... 
- windows phone 基础
			一.安装 建议安装Windows 7环境,XP中不能运行模拟器,Vista系统支持,但不解释.系统安装完后,直接去微软网站在线安装即可,非常方便,美中不足的是如果你的网速不快,那可能要折磨你半天,快得 ... 
- npm WARN saveError ENOENT: no such file or directory
			转自树之名原文npm WARN saveError ENOENT: no such file or directory解决 我是在安装sequelize时出错的.提示的错误没有保存,类似于参考的文章中 ... 
- sql语句中having的作用是?
			HAVING对由sum或其它集合函数运算结果的输出进行限制.比如,我们可能只希望看到Store_Information数据表中销售总额超过1500美圆的商店的信息,这时我们就需要使用HAVING从句. ... 
