首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

窗口历程函数可以是类的保护的、静态成员函数吗

2013-07-08 
窗口过程函数可以是类的保护的、静态成员函数吗?class CWnd{protected:static LRESULT CALLBACK CWnd::g_Wn

窗口过程函数可以是类的保护的、静态成员函数吗?
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,这个成员函数是保护的,外界怎么调动它?
[解决办法]

引用:
Quote: 引用:

或者在类内部/子类内部让其余窗口关联.
我又仔细看了一下代码,他(作者)确实是这么干的,在成员函数中注册窗口类。
不过窗口过程函数应该是由windows来调用的吧?系统并不在类的内部,它怎么访问到这个函数?

windows的消息机制不认识认识类,只关系与之关联的消息处理过程(回调函数).
[解决办法]
这个是回调函数,只需要把函数指针传递过去就行了,函数指针,是不分public,protected,private 的。
实际上都是public的。

窗口过程回调函数,是线程处理消息循环时,被操作系统调用的。

热点排行