0

我有一个带有功能 WndProc 的 win32 包装类(我使用静态 wndproc 将消息转发到 WndProc 成员函数)。

我还有另一个应用程序类,它创建了我的 win32 包装类的实例。

我希望应用程序类的用户能够编写自己的表示事件的函数,例如 OnMouseClick() 或 OnMouseMove(),但为了使其工作,我需要从 win32 包装器调用事件函数类的 Wndproc(不了解应用程序类)。

最好的方法是什么?我应该将指向每个事件函数的指针发送到我的 win32 包装类,并通过指针调用它吗?或者,还有更好的方法?

4

1 回答 1

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 事件时调用虚拟方法。这会触发应用程序代码的执行。

于 2012-08-13T20:42:49.757 回答