C++ C++;静态成员的多个实例

C++ C++;静态成员的多个实例,c++,class,static,C++,Class,Static,可能重复: 我正在尝试编写一个处理Win32控件的泛型类,问题是WndProc消息处理程序函数是静态的,因此我无法从该函数访问重要的本地类成员,如hWnd,除非我将它们也设为静态并在全局命名空间中实例化它们 现在我确实试过了,但很快发现,在我创建另一个控件类实例的那一刻,先前创建的实例的静态成员值被新实例重写了。有人知道如何实现这个类吗?是否可能以某种方式拥有一个静态成员的多个实例 谢谢,使用静态WndProc作为代理函数,调用传递给静态WndProc的特定对象实例。我通常使用GetWindo

可能重复:

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

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


谢谢,

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

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

我已经有一段时间没有处理过这个问题了,但是MFC和OWL都实现了一种动态调度形式,WndProc使用它将消息的HWND映射到对象上,然后执行一个普通的方法调用。啊,发现该链接中的文章非常有启发性,谢谢Jamesi我已经有一段时间没有处理过这个问题了,但是MFC和OWL都实现了一种动态调度形式,WndProc使用它将消息的HWND映射到对象上,然后执行一个普通的方法调用。啊,发现该链接中的文章非常有启发性,谢谢你,詹姆斯