Как заставить горячие клавиши Windows работать в средах Direct X?

Я программирую действительно простое приложение MFC C ++, которое работает с горячими клавишами. Чтобы установить HotKey, я использую следующий метод из WinAPI для моего приложения:

BOOL RegisterHotKey(
HWND hWnd,         // window to receive hot-key notification
int id,            // identifier of hot key
UINT fsModifiers,  // key-modifier flags
UINT vk            // virtual-key code
);

Чтобы поймать любое сообщение HotKey, которое я использую: ON_MESSAGE(WM_HOTKEY,OnHotKey) в карте сообщений и в этом методе обратного вызова для проверки его функциональности:

LRESULT OnHotKey(WPARAM wParam, LPARAM lParam)
{
if (wParam == MY_HOTKEY_KEY_CODE)
{
MessageBox(L"HotKey was pressed!");
return TRUE;
}
return FALSE;
}

Когда горячая клавиша нажата, она входит в OnHotKey Метод и не обрабатывает ключ нормально. Например, если я напишу какой-нибудь текст в Блокноте и нажму «O» как HotKey, «O» не добавится к моему тексту, но сообщение «HotKey нажата!» появляется, что приятно.

Но когда я нахожусь в любой игре Direct X и нажимаю горячую клавишу, она не отправляется в мое приложение. Также при наборе чего-либо в среде Direct X HotKey просто работает как обычная клавиша.
Связывает ли Direct X все ключевые входы? Есть ли способ заставить Windows HotKeys работать со средами Direct X?

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]