Куда попадают все сообщения ввода в программе на MFC? В класс CWinApp. Именно в нем в функции Run( ) есть обработка ввода.
Запускается петля обработки сообщений с помощью функций TranslateMessage() и DispatchMessage(). Так же во время простоя CWinApp вызывает функцию OnIdle(). Но перед тем как вызвать TranslateMessage() класс CWinApp вызывает PreTranslateMessage() для того, чтобы Вы сами могли добавить код. Общая схема обработки в MFC такая:
Функция PreTranslateMessage() виртуальная, то есть ее можно перегрузить:
virtual BOOL PreTranslateMessage ( MSG* pMsg //Указатель на структуру сообщения );
Вот так например, вызвав Add Virtual Function:
//////////////////////////////////////// // CT2App message handlers BOOL CT2App::PreTranslateMessage(MSG* pMsg) { return CWinApp::PreTranslateMessage(pMsg); }
Если вы не хотите обрабатывать сообщение дальше, то просто верните ненулевое значение, а если дальнейшая обработка стандартными средствами нужна, то верните 0. Используя ее вы спокойно можете отгородить свое приложение от целого класса сообщений.