手机
当前位置:查字典教程网 >编程开发 >C语言 >解决C++ 无法从void 转换为LRESULT的方法详解
解决C++ 无法从void 转换为LRESULT的方法详解
摘要:这个应该是一个MFC程序,ON_MESSAGE是添加消息响应函数,这句话就是添加热键WM_HOTKEY的响应函数。当你注册了热键之后,当用户...

这个应该是一个MFC程序,ON_MESSAGE是添加消息响应函数,这句话就是添加热键WM_HOTKEY的响应函数。当你注册了热键之后,当用户按下热键,会执行OnHotKey函数来处理这个消息。错误就应该是OnHotKey这个函数的声明错误了,返回值应该是LRESULT. VS2008对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2008下编译不通过

ON_MESSAGE(WM_message,OnMyMessage);

OnMessage返回值必须为LRESULT,其形式为:afx_msg LRESULT OnMessage(WPARAM, LPARAM);

如果不符合,则有错误提示:error C2440: “static_cast”:无法从“void (__thiscall CMainFrame::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”

解决方法如下:首先,把原来的消息函数返回值类型改为LRESULT,函数内可以随便写个return 0;然后消息函数的参数必须改写成(WPARAM wParam,LPARAM lParam)而不论这两个。

【解决C++ 无法从void 转换为LRESULT的方法详解】相关文章:

解析C语言中空指针、空指针常量、NULL & 0的详解

基于typedef的用法详解

深入C++中API的问题详解

解析在Direct2D中画Bezier曲线的实现方法

C++实现基数排序的方法详解

C++中const的用法详细总结

C语言游戏必备:光标定位与颜色设置的实现方法

C与C++ 无参函数的区别解析

解决C++中重定义的方法总结

C语言解线性方程的四种方法

精品推荐
分类导航