|
|
@ -181,7 +181,7 @@ static bool IsAnyMouseButtonDown() |
|
|
|
} |
|
|
|
|
|
|
|
// We use Win32 SetCapture/ReleaseCapture() API to enable reading the mouse outside our Windows bounds.
|
|
|
|
IMGUI_API LRESULT ImGui_ImplDX9_WndProcHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) |
|
|
|
IMGUI_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) |
|
|
|
{ |
|
|
|
ImGuiIO& io = ImGui::GetIO(); |
|
|
|
switch (msg) |
|
|
@ -189,47 +189,47 @@ IMGUI_API LRESULT ImGui_ImplDX9_WndProcHandler(HWND hwnd, UINT msg, WPARAM wPara |
|
|
|
case WM_LBUTTONDOWN: |
|
|
|
if (!IsAnyMouseButtonDown()) ::SetCapture(hwnd); |
|
|
|
io.MouseDown[0] = true; |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
case WM_RBUTTONDOWN: |
|
|
|
if (!IsAnyMouseButtonDown()) ::SetCapture(hwnd); |
|
|
|
io.MouseDown[1] = true; |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
case WM_MBUTTONDOWN: |
|
|
|
if (!IsAnyMouseButtonDown()) ::SetCapture(hwnd); |
|
|
|
io.MouseDown[2] = true; |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
case WM_LBUTTONUP: |
|
|
|
io.MouseDown[0] = false; |
|
|
|
if (!IsAnyMouseButtonDown()) ::ReleaseCapture(); |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
case WM_RBUTTONUP: |
|
|
|
io.MouseDown[1] = false; |
|
|
|
if (!IsAnyMouseButtonDown()) ::ReleaseCapture(); |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
case WM_MBUTTONUP: |
|
|
|
io.MouseDown[2] = false; |
|
|
|
if (!IsAnyMouseButtonDown()) ::ReleaseCapture(); |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
case WM_MOUSEWHEEL: |
|
|
|
io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
case WM_MOUSEMOVE: |
|
|
|
io.MousePos.x = (signed short)(lParam); |
|
|
|
io.MousePos.y = (signed short)(lParam >> 16); |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
case WM_KEYDOWN: |
|
|
|
if (wParam < 256) |
|
|
|
io.KeysDown[wParam] = 1; |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
case WM_KEYUP: |
|
|
|
if (wParam < 256) |
|
|
|
io.KeysDown[wParam] = 0; |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
case WM_CHAR: |
|
|
|
// You can also use ToAscii()+GetKeyboardState() to retrieve characters.
|
|
|
|
if (wParam > 0 && wParam < 0x10000) |
|
|
|
io.AddInputCharacter((unsigned short)wParam); |
|
|
|
return true; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
return 0; |
|
|
|
} |
|
|
|