我想使用windows原始输入在一台计算机上启用两个鼠标输入。
但是,我没能弄清楚如何获得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)
那我应该拿窗户把手吗?怎么拿?
OpenSceneGraph是一个跨平台的工具包。Windows消息在OpenSceneGraph中进行内部翻译,并转换为特定于OSG的类型。您在CallbackManager
中得到的内容与Windows消息完全分离。
除了深入研究OpenSceneGraph代码并在OSG的核心中添加对多指针设备的支持之外,你几乎无能为力