我有一个带有功能WndProc的win32包装器类(我使用静态wndproc将消息转发到WndProc成员函数)。
我还有另一个app类,它创建了我的win32包装类的实例。
我希望app类的用户能够编写自己的代表事件的函数,例如OnMouseClick()或OnMouseMove(),但是为了使它能够工作,我需要调用事件函数来自win32包装器类的Wndproc(不知道app类)。
最好的方法是什么?我应该将指向每个事件函数的指针发送到我的win32包装器类,并通过指针调用它吗?或者有更好的方法吗?
答案 0 :(得分:0)
您的课程结构及其目的尚不清楚。然而,包装类的典型推荐结构如下:
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事件时调用虚方法。这会触发应用程序代码的执行。