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


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




 275 - Класс CListBox, отрисовываем пункты списка сами / MFC шаг за шагом / Visual C++

Шаг 275 - Класс CListBox, отрисовываем пункты списка сами

Для возможности самостоятельного слежения за прорисовкой строк класса CListBox необходимо установить стиль Owner Draw. Установка этого стиля говорит о том, что за перерисовку строк будет отвечать программа, а не Control. Вот где ставится этот стиль:

275_1.gif (3193 b)

После установки этого стиля нам тут же надо перегрузить две виртуальные функции. Одна отвечает за прорисовку элементов списка, вторая за сравнение. Если этого не сделать, то в ходе выполнения произойдут ошибки. Кстати мы работаем со старым проектом из прошлых шагов.

void CTestList::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
	// TODO: Add your code to draw the specified item
}

int CTestList::CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct) 
{
	// TODO: Add your code to determine the sorting order of the specified items
	// return -1 = item 1 sorts before item 2
	// return 0 = item 1 and item 2 sort the same
	// return 1 = item 1 sorts after item 2
	
	return 0;
}

Напишем функцию, которая выводит строки красным цветом ??? Вот код:

void CTestList::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
	CDC dc;
	dc.Attach(lpDrawItemStruct->hDC);
	CRect rect;
	rect=lpDrawItemStruct->rcItem;
	dc.SetTextColor(RGB(255,0,0));
	dc.DrawText((LPSTR)lpDrawItemStruct->itemData,rect,
		DT_LEFT | DT_WORDBREAK);  
	dc.Detach(); 
}

Используем обычные функции CDC.

275_2.gif (1315 b)


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