如何在OpenSceneGraph中使用Windows原始输入?

时间:2013-11-21 14:26:42

标签: c++ windows opengl raw-input openscenegraph

我想使用windows raw input在一台计算机上启用两个鼠标输入。

但是,我没有弄清楚如何获取WM_INPUT消息。它似乎得到了消息,我需要这样做:

MainWndProc (HWND hwnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
        switch (nMsg)
        {
               ...
              case WM_INPUT: 
                {
                        GetRawInputData((HRAWINPUT)lParam, RID_INPUT, NULL, &dwSize, 
                                                        sizeof(RAWINPUTHEADER));
               .............
        }
}

我认为OpenSceneGraph窗口应该是窗口类型,但是如何在不使用MainWndProc的情况下获取WM_INPUT消息?

似乎我无法得到这样的WM_INPUT消息:

bool CallbackManager::handle(const GUIEventAdapter& ea, GUIActionAdapter& us)
{
        if(ea.getEventType() == WM_INPUT)

然后,我应该获得Windows句柄以及如何使用?

1 个答案:

答案 0 :(得分:1)

OpenSceneGraph是一个跨平台工具包。 Windows消息在OpenSceneGraph内部进行转换,并转换为OSG特定类型。您在CallbackManager中获得的内容与Windows消息完全分离。

如果没有深入了解OpenSceneGraph代码并在OSG核心中添加多指针设备支持,那么你几乎无能为力。

相关问题