无法从 LRESULT (_stdcall*)(HWMD,UINT,WPAPAM,LPAPAM)转换为WNDPROC怎么解决
自己定义了一个消息处理函数LRESULTCALLBACKWndProc(HWND,UINTmsg,WPARAM,LPARAM);然后定义窗口WinAppwcApp,赋值函...
自己定义了一个消息处理函数LRESULT CALLBACK WndProc(HWND,UINT msg,WPARAM,LPARAM);然后定义窗口WinApp wcApp, 赋值函数wcApp.lpfnProc=WndProc;时出现上述错误...查了下WNDPROC的原型为typedef LRESULT (CALLBACK* WNDPROC)(HWND,UINT,WPARAM,LPARAM);函数参数及返回值都相同为什么不能将lpfnProc指向WndProc呢???书上vc6.0的例子都这样用的,不解呀,应该不是编译环境问题....求解,急呀!!!!!!!!!!!!!!!!!!!!
展开
展开全部
我刚刚试过了、如果按照这样的写法。
文件后缀名为.cpp改为.c添加到工程中。编译成功可以运行。
我的编译环境为VS2008。 参考书上的例子为VC++6.0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题要从windows的运行机制说起了
windows是以消息为基础,事件为驱动而运行的
也就是说,一个事件发生后,windows会产生一个消息,传递给指定的窗口进行处理,既然这样,必须有借口给系统来调用,这个LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM)中第1个参数,是消息要传递的窗口,参数2是消息的id(也就是这是个什么样的消息,比如鼠标左键按下对应的消息是WM_LBUTTONDOWN),参数3和参数4是消息的具体内容
windows是以消息为基础,事件为驱动而运行的
也就是说,一个事件发生后,windows会产生一个消息,传递给指定的窗口进行处理,既然这样,必须有借口给系统来调用,这个LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM)中第1个参数,是消息要传递的窗口,参数2是消息的id(也就是这是个什么样的消息,比如鼠标左键按下对应的消息是WM_LBUTTONDOWN),参数3和参数4是消息的具体内容
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询