如何将win32 WndProc包装到C ++类中?

这有可能吗? 例如,假设我有以下内容:

class Window { private: WNDCLASSEX wc; public: inline WNDCLASSEX getWindowClass() { return wc; } Window(); LRESULT CALLBACK WndProc(HWND hwnd, UINT message, LPARAM lParam, WPARAM wParam); } void RegisterWindow(Window win) { WNDCLASSEX* wc = win.getWindowClass(); RegisterClassEx(wc); } 

现在,某处会有一个部分(可能在Window类的构造函数中,需要为WNDCLASSEX分配一个WndProc ,这在Window类中有说明。唯一的问题是,因为它是一个部分class,会出现错误。这样,它是如何实现的?它是静态的吗?即便如此,如果类包装它仍然是某种程度的类的一部分。如果我在类之外创建它,那么简单地抹掉了这一点。

this指针作为GWLP_USERDATASetWindowLongPtr ,这有效地允许您将自由函数简单地转发到成员函数。