Как использовать Windows Raw ввода в OpenSceneGraph?

Я хочу использовать Windows Raw ввод включить две мыши на одном компьютере.

Однако я не смог понять, как получить сообщение 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 должно быть типом окна, но как я могу получить сообщение WM_INPUT без использования MainWndProc?

Кажется, я не могу получить сообщение WM_INPUT, как это:

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

Тогда я должен получить ручку окон и как?

-1

Решение

OpenSceneGraph — это кросс-платформенный инструментарий. Сообщения Windows переводятся внутри в OpenSceneGraph и превращаются в определенные типы OSG. Что вы получаете в CallbackManager полностью отделен от сообщений Windows.

Если не считать погружения в код OpenSceneGraph и добавления поддержки устройств с несколькими указателями в ядре OSG, с этим мало что можно поделать.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]