2012-08-13 68 views
0

我有一个运行WndProc的win32包装类(我使用静态wndproc将消息转发给WndProc成员函数)。从Win32包装器的另一个类中调用函数WndProc

我也有另一个应用程序类创建我的win32包装类的实例。

我希望应用程序类的用户能够编写自己的代表事件的函数,如OnMouseClick()或OnMouseMove(),但为了这个工作,我需要调用事件函数来自win32包装类的Wndproc(它不知道应用程序类)。

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

+0

Windows的标准功能,它被称为“子窗口”。在谷歌查询中键入并采取第一个命中。 – 2012-08-13 21:41:36

回答

0

你的类的结构及其目的不明确。然而,包装类的典型recommnded结构如下:当它接收其静态的WndProc处理程序的Windows事件

class BaseClass 
{ 
public: 
    virtual void OnMouseClick(...) { } // Empty body 
    virtual void OnMouseMove(...) { } // Empty body 
}; 

class AppClass : public BaseClass 
{ 
public: 
    void OnMouseClick(...) { AppCode } 
    void OnMouseMove(...) { AppCode } 
}; 

基类调用虚方法。这触发了应用程序代码的执行。

+0

我明白这一点,这是我的项目的一部分。然而,我在问如何处理一个名为D3DWindow的单独的win32包装类,但是在BaseClass中实例化了。 D3DWindow没有OnMouseclick/OnMouseMove()的知识,并且我正在寻求一种使这项工作成功的好方法。 – 2012-08-13 20:49:26

+0

然后你最好解释你需要什么。 – 2012-08-13 20:51:18