2

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

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类的构造函数中,有必要分配WNDCLASSEXa WndProc,这是在类中注明的Window。唯一的问题是,因为它是类的一部分,所以有一个将引发错误。因此,这是如何实现的?它是静态的吗?即便如此,如果类包装它,它仍然是类的一部分。如果我在类之外创建它,那只会抹杀这一点.

4

1 回答 1

4

您将this指针传递GWLP_USERDATASetWindowLongPtr,这实际上允许您简单地将自由函数转发给成员函数。

于 2012-01-08T19:56:36.323 回答