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 руб./мес


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




 292 - Отраженные сообщения на примере WM_CTLCOLOR / MFC шаг за шагом / Visual C++

Шаг 292 - Отраженные сообщения на примере WM_CTLCOLOR

В MFC начиная с версии 4 появилось понятие отраженных сообщений. Это продолжение идеи развитой в тех прошлых шагах. Как заставить обрабатываться сообщения внутри класса элемента управления и не обременять этим диалоговое окно. Давайте в нашем проекте удалим всю поддержку обработки сообщения WM_CTRLCOLOR и посмотрим как это делается по новому.

Увидить какие есть отраженные сообщения просто. Для этого нужно зайти в Add Windows Message Handles все сообщения, рядом с котороми будет знак = это отраженные сообщения и значит их можно обрабатывать внутри класса, а не в родительском окне.

292.gif (9876 b)

Давайте установим обработку этого сообщения и посмотрим что произойдет. В карте сообщения повился новый тип макроса REFLECT:

BEGIN_MESSAGE_MAP(CMyEdit, CEdit)
	//{{AFX_MSG_MAP(CMyEdit)
	ON_WM_CTLCOLOR_REFLECT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

И появилась функция:

HBRUSH CMyEdit::CtlColor(CDC* pDC, UINT nCtlColor) 
{
	// TODO: Change any attributes of the DC here
	
	// TODO: Return a non-NULL brush if the parent's handler should not be called
	return NULL;
}

Где мы и можем установить цвета и заливки. Как видите это самый простой способ из всех. Им и надо пользоваться.


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