假设我定义了下面这个类
class a
{
public:
a()
{
wndclass.lpfnWndProc =WndProc;/****如何注册这个WndProc回调,并且
数据类型一致,可以正常工作?????
****/
}
LRESULT CALLBAKC WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
...
return 0;
}
private:
WNDCLASS wndclass;
};问题都在上面了,请大家帮忙多多UP,分不够在+.
class a
{
public:
a()
{
wndclass.lpfnWndProc =WndProc;/****如何注册这个WndProc回调,并且
数据类型一致,可以正常工作?????
****/
}
LRESULT CALLBAKC WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
...
return 0;
}
private:
WNDCLASS wndclass;
};问题都在上面了,请大家帮忙多多UP,分不够在+.
2声明函数原形int WINAPI CBFunc(int Param1,int Param2);
3.调用回调函数的函数我把它放到了DLL里
4 在你的程序里int WINAPI CBFunc(int Param1,int Param2){写实现部分 }
2、定义class a 的一个全局指针 a *pwnd;并在构造函数中对其赋值this;
3、在WndProc中通过全局指针调用真正的处理函数。
class a;
a *pwnd=NULL;
class a
{
public:
a()
{
wndclass.lpfnWndProc =WndProc;/****如何注册这个WndProc回调,并且
数据类型一致,可以正常工作?????
****/
pwnd=this; // 给全局指针赋值。
}
LRESULT static CALLBAKC WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
...
pwnd->...//此处真正调用处理函数。它可以为任何一个内部函数。
return 0;
}
private:
WNDCLASS wndclass;
};
祝你成功!
t,long)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
Error executing cl.exe.
应该为:static void WINAPI WndProc(....)
因为WINAPI即为__stdcall