[英]Call function in another class from Win32 wrapper WndProc
我有一个具有正常运行的WndProc的win32包装器类(我使用静态wndproc将消息转发到WndProc成员函数)。
我还有另一个应用程序类,它创建了我的win32包装器类的实例。
我希望应用程序类的用户能够编写自己的表示事件的函数,例如OnMouseClick()或OnMouseMove(),但是为了使其正常工作,我需要从win32包装器中调用事件函数类的Wndproc(不了解应用程序类)。
最好的方法是什么? 我是否应该将指向每个事件函数的指针发送到Win32包装器类,并通过指针进行调用? 或者,还有更好的方法?
您的类的结构及其目的尚不清楚。 尽管如此,包装类的典型推荐结构如下:
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事件时,将调用虚拟方法。 这触发了应用程序代码的执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.