Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.031 c
2-1138265784
Geonew
2006-01-26 11:56
2006.02.12
Помогите!!!!!!!!!!!!!


3-1134629133
Kodla
2005-12-15 09:45
2006.02.12
Как передать имя таблицы в процедуру?


15-1137510339
oldman
2006-01-17 18:05
2006.02.12
Да здравствует английский язык, самый английский в мире!!! :)


1-1136962161
alless
2006-01-11 09:49
2006.02.12
Как узнать что файл записался до конца в дир.?


1-1136974706
Barsky
2006-01-11 13:18
2006.02.12
Скрол (мышыный) в гриде




   Наверх