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++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Дебетовая карта Home Credit [CPS] RU

 883 - CMenu::DrawItem / MFC Справка / Visual C++

Шаг 883 - CMenu::DrawItem

virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );

Параметры
lpDrawItemStruct
Указатель на структуру DRAWITEMSTRUCT, которая содержит информацию относительно типа требуемого рисунка.

Замечания
Вызванный рамкой, когда визуальный аспект выведенных владельцем меню изменился . ItemAction член структуры DRAWITEMSTRUCT определяет действие рисунка, которое должно выполниться. Перегрузите эту функцию, чтобы выполнить рисунок для владельца - выводящегося объект CMenu. Прикладная программа должна восстановить все графические объекты (GDI) интерфейса устройства, выбранные для контекста дисплея, обеспеченного в lpDrawItemStruct перед завершением этой функции.

Пример

// Перегрузите DrawItem () чтобы выполнить рисунок для 
// владельца - выводящегося объект CMenu.
// CColorMenu - класс наследник CMenu.

void CColorMenu::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
	CDC* pDC = CDC::FromHandle(lpDIS->hDC);
	COLORREF cr = (COLORREF)lpDIS->itemData; // RGB в данных элемента

	if (lpDIS->itemAction & ODA_DRAWENTIRE)
	{
		// Красьте цветной элемент в запрошенном цвете
		CBrush br(cr);
		pDC->FillRect(&lpDIS->rcItem, &br);
	}

	if ((lpDIS->itemState & ODS_SELECTED) &&
		(lpDIS->itemAction & (ODA_SELECT | ODA_DRAWENTIRE)))
	{
		// Элемент был выбран - hilite рамка
		COLORREF crHilite = RGB(255-GetRValue(cr),
			255-GetGValue(cr), 255-GetBValue(cr));
		CBrush br(crHilite);
		pDC->FrameRect(&lpDIS->rcItem, &br);
	}

	if (!(lpDIS->itemState & ODS_SELECTED) &&
		(lpDIS->itemAction & ODA_SELECT))
	{
		// Отменили выбор элемента- удаляем рамку
		CBrush br(cr);
		pDC->FrameRect(&lpDIS->rcItem, &br);
	}
}

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





Дебетовая карта Home Credit [CPS] RU