Главная страница
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.027 c
2-1137927805
Compton's G
2006-01-22 14:03
2006.02.12
Как создать массив TBitmap


15-1137150304
Kerk
2006-01-13 14:05
2006.02.12
Кладовка


3-1134388793
WG
2005-12-12 14:59
2006.02.12
После индексирования dbf-файла некорректно работает select (SQL)


2-1138270311
Alex7
2006-01-26 13:11
2006.02.12
Функция Locate


15-1137780394
DSolodky
2006-01-20 21:06
2006.02.12
Где розместить сервер?