Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.12;
Скачать: CL | DM;

Вниз

Что сделать с некорректной отрисовкой TCustomListBox?   Найти похожие ветки 

 
Aleksandr.   (2005-08-25 17:14) [0]

Точнее, я накатал объекта-потомка от этого класса, имеющего, в первую очередь, Style=lbOwnerDrawFixed и специфику отрисовки объектов своих итемов. При свойстве IntegralHeight=false отрисовка с таким стилем имеет неприятную особенность при некратности высот элементов высоте поля рисования оставлять пустую белую или черную полосу внизу за последним элементом (такое наблюдается и в Борландовском Object Inspector, кстати), а при IntegralHeight=true - не менее неприятную особенность вообще не заполнять ClientRect своего Parent, пока его высота не станет кратной высоте элемента.
Какие есть варианты управления отрисовкой объекта, чтобы избежать всего этого?
Я пытался отработать со стилем lbOwnerDrawVariable, но там проявилась другая ерунда - MeasureItem делает почему-то только один вызов для первого добавляемого элемента, после чего перед отрисовкой больше не вызывается.


 
Юрий Зотов ©   (2005-08-26 00:45) [1]

Из описания WM_MEASUREITEM в MSDN.

When the owner window receives the WM_MEASUREITEM message, the owner fills in the MEASUREITEMSTRUCT structure pointed to by the lpMeasureItem parameter of the message and returns; this informs the system of the dimensions of the control. If a list box or combo box is created with the LBS_OWNERDRAWVARIABLE or CBS_OWNERDRAWVARIABLE style, this message is sent to the owner for each item in the control; otherwise, this message is sent once.

The system sends the WM_MEASUREITEM message to the owner window of combo boxes and list boxes created with the OWNERDRAWFIXED style before sending the WM_INITDIALOG message. As a result, when the owner receives this message, the system has not yet determined the height and width of the font used in the control; function calls and calculations requiring these values should occur in the main function of the application or library.



Страницы: 1 вся ветка

Текущий архив: 2006.02.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.094 c
15-1138178660
-Nick-
2006-01-25 11:44
2006.02.12
Закрытие периода


15-1137339360
Piter
2006-01-15 18:36
2006.02.12
Я плакал :)) А это правда?


15-1137654352
WondeRu
2006-01-19 10:05
2006.02.12
Составление 3D-карты из двух аэро(космо)фотоснимков.


15-1137712644
Yegorchic
2006-01-20 02:17
2006.02.12
Олимпиады по программированию


2-1138219426
veb
2006-01-25 23:03
2006.02.12
Прервать цикл