C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 311 - PreTranslateMessage в MFC (CWinApp) / MFC шаг за шагом / Visual C++

Шаг 311 - PreTranslateMessage в MFC (CWinApp)

Куда попадают все сообщения ввода в программе на MFC? В класс CWinApp. Именно в нем в функции Run( ) есть обработка ввода.

Запускается петля обработки сообщений с помощью функций TranslateMessage() и DispatchMessage(). Так же во время простоя CWinApp вызывает функцию OnIdle(). Но перед тем как вызвать TranslateMessage() класс CWinApp вызывает PreTranslateMessage() для того, чтобы Вы сами могли добавить код. Общая схема обработки в MFC такая:

311.gif (4449 b)

Функция PreTranslateMessage() виртуальная, то есть ее можно перегрузить:

virtual BOOL PreTranslateMessage
( 
	MSG* pMsg //Указатель на структуру сообщения
);

Вот так например, вызвав Add Virtual Function:

////////////////////////////////////////
// CT2App message handlers

BOOL CT2App::PreTranslateMessage(MSG* pMsg) 
{
	return CWinApp::PreTranslateMessage(pMsg);
}

Если вы не хотите обрабатывать сообщение дальше, то просто верните ненулевое значение, а если дальнейшая обработка стандартными средствами нужна, то верните 0. Используя ее вы спокойно можете отгородить свое приложение от целого класса сообщений.


| |
Автор Каев Артем.
[AD]