Я хочу использовать 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)
Тогда я должен получить ручку окон и как?
OpenSceneGraph — это кросс-платформенный инструментарий. Сообщения Windows переводятся внутри в OpenSceneGraph и превращаются в определенные типы OSG. Что вы получаете в CallbackManager
полностью отделен от сообщений Windows.
Если не считать погружения в код OpenSceneGraph и добавления поддержки устройств с несколькими указателями в ядре OSG, с этим мало что можно поделать.
Других решений пока нет …