2016-09-25 2 views
0

Итак, я пытаюсь создать окно сообщения, когда пользователь нажимает кнопку на своей клавиатуре с помощью кнопок «Крючки».Функция callback KeyboardProc не вызвана?

Крюк устанавливается правильно, потому что ошибок нет, но функция вызова KeyboardProc не вызвана, потому что окно сообщения, которое должно отображаться, когда оно вызывается, никогда не появляется.

Нет ошибок, которые появляются, и я программирую это в настольном приложении.

Вот код относительно крючка и функции обратного вызова:

LRESULT CALLBACK KeyboardProc(
int nCode, WPARAM keyState, LPARAM keyInfo) { 
    LRESULT reValue = 0; 
    MessageBox(hWnd, L"Testing", L"Test", MB_OK);//This is the msg box that isnt showing up 
    if (nCode < 0) { 
     reValue = CallNextHookEx(keyboardHook, nCode, keyState, keyInfo); 
    } 


    return reValue; 
}; 

keyboardHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, hInstance, 0); 
+0

Вы используете цикл сообщений? – 1201ProgramAlarm

+0

Мне это не нужно? И если да, то как это сделать – sharpchain

ответ

1

Вам необходимо запустить цикл обработки сообщений для обработки вызовов. Из remakrs в описании KeyboardProc callback function: «Вызов осуществляется путем отправки сообщения в поток, который установил крючок. Следовательно, поток, который установил hook, должен иметь контур сообщения».

+0

Как создать цикл сообщений? Как ik, как сделать цикл, но что я в него вкладываю? – sharpchain

+0

Nvm Я понял это за помощь! – sharpchain

Смежные вопросы