我最近開始閱讀Beginning DirectX 11 Programming(Allen Sherrod,Wendy Jones),並且偶然發現了一個有關輸入的問題。本書只教我如何使用Win32,DirectInput和XInput進行輸入處理。然而,經過一番研究,我意識到我應該使用RawInput進行輸入處理。這是問題出現的地方。原始鼠標輸入的解釋
我已經設法讓我的應用程序接收原始鼠標輸入。我對你們的問題是:如何解釋原始鼠標數據並將其用於我的遊戲,與您如何使用WM_MOUSEMOVE類似?
編輯:對不起,表達自己不好。我想知道鼠標指針在我的應用程序屏幕中的位置,但不明白鼠標原始輸入的值。 (MX,MY)
case WM_INPUT:
{
UINT bufferSize;
GetRawInputData((HRAWINPUT)lParam, RID_INPUT, NULL, &bufferSize, sizeof(RAWINPUTHEADER));
BYTE *buffer = new BYTE[bufferSize];
GetRawInputData((HRAWINPUT)lParam, RID_INPUT, (LPVOID)buffer, &bufferSize, sizeof(RAWINPUTHEADER));
RAWINPUT *raw = (RAWINPUT*) buffer;
if (raw->header.dwType == RIM_TYPEMOUSE)
{
long mX = raw->data.mouse.lLastX;
long mY = raw->data.mouse.lLastY;
}
}
Win32是一個比你想象的更廣的領域。也許你的意思是它教你窗口消息。 – chris
這是一個非常寬泛且通用的問題。嚴格來說,您可以通過調用相關的API函數來使用它。 – DanielKO
每次收到鼠標輸入時都有內存泄漏。這不是你想要的。使用矢量。 – chris