0

可能重复:
存储此指针以在 WndProc 中使用的最佳方法

我正在尝试编写一个处理 Win32 控件的通用类,问题是,WndProc 消息处理函数是静态的,因此我无法从函数访问重要的本地类成员,例如 hWnd,除非我也将它们设为静态并实例化它们全局命名空间。

现在我确实尝试了,但很快发现在我创建控件类的另一个实例的那一刻,之前创建的实例的静态成员值被新的实例覆盖了。有人知道如何实现这个类吗?是否有可能以某种方式拥有一个静态成员的多个实例?

谢谢,

4

1 回答 1

3

使用静态 WndProc 作为代理函数,该函数调用传递给静态 WndProc 的特定对象实例。我通常使用 GetWindowLongPtr 和 SetWindowLongPtr API 来存储指向创建窗口的实例的指针。

于 2012-06-05T17:51:13.690 回答