Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Вопрос по OWNERDRAW для CImageList.


Автор: AndreySol 5.5.2005, 06:46
ОС - WinMe.
Компилятор - MSVC++ 6.0 + SP5.
Дайте кто знает хороший пример OWNERDRAW для CImageList.

Автор: Step 5.5.2005, 09:38
AndreySol, я туплю или вы что то напутали...

CImageList - это хранилище производное от CObject

а OWNERDRAW применимо только к производным от внд


а вот если вы хотите что бы CImageList отрисовку производил по вашиим правилам
то сделайте от него производный
и перегрузите необходимые функции отрисовки..

Автор: AndreySol 10.5.2005, 06:39
Ну значит я неправильно сформулировал, но меня интересовало как работать с ф-циями:
Код

Draw
DrawEx
DrawIndirect

То есть примерчик хороший, как самому рисовать список изображений.

Автор: Nastya 10.5.2005, 08:50
А в чем проблема?
1. Создаешь объект CImageList
2. вызываешь метод Create
3. Если в криате не заполнил его картинками, то заполняешь через Add
4. Когда нужно вывести картинку вызываешь указанные тобой методы.

Вот пример из MSDN
Код

// The pointer to my image list.
extern CImageList* pmyImageList;
// The position of where to draw the image.
extern CPoint myPoint;
// The DC to draw the image on.
extern CDC* pmyDC;

// Add a new image to the image list.
int nIndex = pmyImageList->Add(AfxGetApp()->LoadStandardIcon(IDI_QUESTION));

if (nIndex != -1)
{
   // Make the new image an overlay image.
   pmyImageList->SetOverlayImage(nIndex, 1);
   
   // Draw the first image in the image list with an overlay image.
   pmyImageList->Draw(pmyDC, 0, myPoint, INDEXTOOVERLAYMASK(1));
}


А лучше почитай Мешкова, там усЁ подробно расписано smile

Автор: AndreySol 11.5.2005, 06:36
Ну так и дайте ссылочки на всяких Мешковых, я об том и просил.

Автор: Nastya 13.5.2005, 18:10
ССылочек не имею, у меня в бумажном виде и когда-то был жутко отсканеный pdf
Но в форуме помоему ссылка была
А. Мешков, Ю. Техомиров, "Visual C++ и MFC"

Автор: AndreySol 18.5.2005, 06:34
Понял, поищу.
Насчет примера из MSDN - пробовал я, да что-то толку нет, похоже проблемы с CDC. Делал так: в обработчике начала перемещения получаю контекст рисования (использовал CClientDC), в обработчике перемещения мыши пробовал рисовать по этому контексту - но нет толку.
Может реальный примерчик кто подкинет ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)