Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 17.11.2003
Откуда: Екатеринбург
Проблема в том, что у меня прога простенькая, основанная на DialogBox'е и в этом DialogBox'е нужно отлавливать нажатия любых клавиш. Но WM_KEYDOWN в функции диалога почему-то не срабатывает, хотя если самому создавать окно то все прекрасно работает :insane:
Пробовал сделать отлов нажатий клавиш GetKeyState'ом через WM_TIMER - работает, но пищит при нажатии букв и цифр :x
Как сделать правильно?

_________________
|АМД процы не так уж и плохи|
|Но все-таки Интел лучше|



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
BloodyWerewolf писал(а):
Но WM_KEYDOWN в функции диалога почему-то не срабатывает

Потому что сообщения идут контролам, а не основному окну. Можно субкласить контролы :) . Как вариант использовать SetWindowsHookEx.
При старте приложения вызвать:
Код:
hook = SetWindowsHookEx(WH_GETMESSAGE, GetMessageProc, NULL, GetCurrentThreadId());

При завершении:
Код:
UnhookWindowsHookEx(hook);

Код функции GetMessageProc:
Код:
LRESULT CALLBACK GetMessageProc( int nCode, WPARAM wParam, LPARAM lParam )
{
    MSG *mes = reinterpret_cast<MSG*>(lParam);
    switch(mes->message){
        case WM_KEYDOWN:
            MessageBox(0,"KeyDown","",MB_OK);
            break;
    }
    return 0;
}

Подробнее по SetWindowsHookEx в msdn.

зы: в MFC есть виртуальная функция CWnd::PreTranslateMessage(MSG*).


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan