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);

}

さて、どこかにセクションがあります(おそらくクラスのコンストラクターで、クラスに記載されているaWindowを割り当てる必要があります。唯一の問題は、それがクラスの一部であるため、エラーが発生します. したがって, これはどのように達成されますか? それは静的に作られていますか? それでも, クラスがそれをラップする場合, それは何らかの形でクラスの一部です. クラスの外で作成すると, それは単に要点を消し去ります. .WNDCLASSEXWndProcWindow

4

1 に答える 1

4

thisにポインタをGWLP_USERDATA渡しますSetWindowLongPtr。これにより、free関数をメンバー関数に簡単に転送できます。

于 2012-01-08T19:56:36.323 に答える