FAQ:WinAPI VCPP:обработка сообщений элемента MFC — различия между версиями

Материал из Весельчак У
Перейти к: навигация, поиск
(Новая: ===Как обработать сообщения, которые приходят к элементу управления?=== Скажем, нужно обработать сообщ...)
 
 
Строка 32: Строка 32:
 
элемента управления переменную класса (выбрав не Value, а Control).
 
элемента управления переменную класса (выбрав не Value, а Control).
  
[[Category:FAQ:WinAPI VCPP]]
+
[[Category:FAQ:WinAPI VCPP]] [[Category:FAQ:MFC]]

Текущая версия на 22:14, 3 октября 2009

Как обработать сообщения, которые приходят к элементу управления?

Скажем, нужно обработать сообщения, приходящие к элементу класса CEdit. Нужно произвести от CEdit свой класс и в виртуальной процедуре класса WindowProc перехватить нужные сообщения.

virtual LRESULT WindowProc(
	UINT message,
	WPARAM wParam,
	LPARAM lParam 
);

Пример. Полностью выключаем, скажем, обработку сообщения WM_CHAR.

LRESULT CMyEdit::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	switch (message)
	{
		case WM_CHAR:
		{
			return 0;
		}
		break;
	}
 
	return CEdit::WindowProc(message, wParam, lParam);
}

Чтобы связать экземпляр класса с элементом управления на форме, добавьте визардом для элемента управления переменную класса (выбрав не Value, а Control).