У меня есть собственный WndPro c, который должен обрабатывать ввод в зависимости от того, открыто ли мое меню Im Gui.
if (Menu::isOpen) {
ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam);
if (msg == WM_LBUTTONDOWN
|| msg == WM_LBUTTONUP
|| msg == WM_LBUTTONDBLCLK
|| msg == WM_MBUTTONDOWN
|| msg == WM_MBUTTONUP
|| msg == WM_MBUTTONDBLCLK
|| msg == WM_RBUTTONDOWN
|| msg == WM_RBUTTONUP
|| msg == WM_RBUTTONDBLCLK
|| msg == WM_XBUTTONDOWN
|| msg == WM_XBUTTONUP
|| msg == WM_XBUTTONDBLCLK
|| msg == WM_MOUSEFIRST) return 0;
}
return CallWindowProc((WNDPROC)Get().m_ulOldWndProc, hWnd, msg, wParam, lParam);
Моя цель - предотвратить ТОЛЬКО щелчки мыши, фон, если мой Im Gui открыт. Я заметил, что если я не препятствую прохождению WM_MOUSEFIRST, некоторые щелчки все еще иногда регистрируются в приложении. Я также заметил, что когда я предотвращаю прохождение WM_MOUSEFIRST, наведение курсора на что-то в приложении не работает, что я бы хотел. Я подумал, что могу решить проблему, проверив что-то в wParams или lParams, но я не могу найти никакой документации по ним для WM_MOUSEFIRST