繁体   English   中英

从Win32包装器WndProc的另一个类中调用函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM