Как мне справиться с нажатием клавиши в MFC? - PullRequest
4 голосов
/ 04 декабря 2010

Я хочу перехватить клавиши, которые нажимаются при отображении одного из моих диалогов

Ответы [ 2 ]

4 голосов
/ 05 декабря 2010

Либо настройте некоторые ускорители, которые отправляют соответствующие WM_COMMAND, либо отвечают на сообщения WM_KEYDOWN / UP и следите за нажатиями клавиш.

Более подробная информация здесь:

http://www.codeproject.com/KB/dialog/pretransdialog01.aspx

И полезный код из этой статьи:

BOOL CPreTransTestDlg::PreTranslateMessage(MSG* pMsg) 
{
    if(pMsg->message==WM_KEYDOWN)
    {
        if(pMsg->wParam==VK_RETURN)
            pMsg->wParam=VK_TAB;
    }   
    return CDialog::PreTranslateMessage(pMsg);
}
1 голос
/ 04 декабря 2010

Вы должны посмотреть на перехват событий клавиатуры. Это ссылка CodeGuru, но есть много, много ресурсов, доступных при поиске Google для Как перехватить события клавиатуры с MFC.

В этих статьях вы обнаружите, что терминология выбора клавиатуры и / или события является предпочтительной. «Перехват» используется для описания процесса. И еще одно замечание: будьте осторожны, где вы зацепите! Вы можете подключиться к своему диалогу или на нескольких других уровнях. (Кстати, регистраторы ключей - это известные трояны, использующие эту тактику. Просто к сведению.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...