可能重复:
Best method for storing this pointer for use in WndProc
我正在尝试编写一个处理Win32控件的泛型类,问题是,WndProc消息处理函数是静态的,因此我无法从函数中访问重要的本地类成员,例如hWnd,除非我将它们设置为静态在全局命名空间中实例化它们。
现在我尝试了但很快就发现了我创建控件类的另一个实例的时刻,之前创建的实例得到了新的静态成员值。有没有人知道如何实施这个课程?是否有可能以某种方式拥有静态成员的多个实例?
谢谢,
答案 0 :(得分:3)
使用静态WndProc作为代理函数,该函数调用传递给静态WndProc的特定对象实例。我通常使用GetWindowLongPtr和SetWindowLongPtr API来存储指向创建窗口的实例的指针。