窗口过程函数可以是类的保护的、静态成员函数吗?
class CWnd
{
protected:
static LRESULT CALLBACK CWnd::g_WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
//……
};
LRESULT CALLBACK CWnd::g_WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
//……
}
我前不久得到一份程序,能编译运行。我发现在注册窗口类的时候,窗口过程函数是CWnd的g_WndProc,这个成员函数是保护的,外界怎么调动它?
[解决办法]
windows的消息机制不认识认识类,只关系与之关联的消息处理过程(回调函数).
[解决办法]
这个是回调函数,只需要把函数指针传递过去就行了,函数指针,是不分public,protected,private 的。
实际上都是public的。
窗口过程回调函数,是线程处理消息循环时,被操作系统调用的。