我有一个带功能WndProc的win32包装器类(我使用一个静态wndproc将消息转发到WndProc成员函数)。
我还有另一个app类,它创建了我的win32包装类的一个实例。
我希望app类的用户能够编写他们自己的表示事件的函数,比如OnMouseClick()或OnMouseMove(),但是为了使其工作,我需要从win32包装器类的Wndproc (它不知道app类)中调用事件函数。
做这件事最好的方法是什么?我是否应该将指向每个事件函数的指针发送到我的win32包装类,并通过指针调用它?还是有更好的方法?
发布于 2012-08-14 04:42:50
你的类的结构和它们的目的不是很清楚。尽管如此,包装器类的典型推荐结构如下:
class BaseClass
{
public:
virtual void OnMouseClick(...) { } // Empty body
virtual void OnMouseMove(...) { } // Empty body
};
class AppClass : public BaseClass
{
public:
void OnMouseClick(...) { AppCode }
void OnMouseMove(...) { AppCode }
};基类在其静态WndProc处理程序中接收到Windows事件时调用虚方法。这会触发应用程序代码的执行。
https://stackoverflow.com/questions/11941858
复制相似问题