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

Вниз

Сабклассинг TListBox - не ловится WM_DRAWITEM   Найти похожие ветки 

 
wild sam   (2006-03-15 01:29) [0]

Здравствуйте. Хочу избавиться от рисования FocusedRect в TListBoxe c OwnerDraw. Наследника писать не хотелось, поэтому решил засабклассить и перекрыть WM_DRAWITEM. Проблема в том, что в новой оконной процедуре оно не появляется. Все остальные  - WM_NCPAINT, например, срабатывают. WM_DRAWITEM - нет. Что это может быть?

Спасибо!


 
Джо ©   (2006-03-15 01:33) [1]

> Хочу избавиться от рисования FocusedRect в TListBoxe c OwnerDraw

Так что мешает сделать в таком роде:


procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin
 with TListBox(Control).Canvas do
 begin
   if odSelected in State then
   begin
     Brush.Color := clActiveCaption;
     Font.Color := clHighlightText;
   end
   else
   begin
     Brush.Color := clWindow;
     Font.Color := clWindowText;
   end;
   ListBox1.Canvas. FillRect (Rect);

   TextOut(Rect.Left,Rect.Top,TListBox(Control).Items[Index]);

   // рамку затираем только на выделенной строке
   if (odSelected in State) and (odFocused in State) then
     DrawFocusRect (Rect);
 end;
end;


 
wild sam   (2006-03-15 01:45) [2]

Упс. Это, действительно, работает :) Я читал про XOR при выводе  DrawFocusRect, но реализовать не получилось. Решил, что придется делать сложно.

Спасибо большое!


 
clickmaker ©   (2006-03-15 12:05) [3]


> wild sam   (15.03.06 01:45) [2]

для справки: wm_drawitem посылается родителю листбокса


 
wild sam   (2006-03-15 18:13) [4]

Да, я в курсе. Пробовал перехватывать и  cn_drawitem - тот же результат.



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

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

Наверх




Память: 0.47 MB
Время: 0.028 c
1-1145893629
sda
2006-04-24 19:47
2006.06.04
нужно ли перекрывать функцию?


5-1133311365
asdqwer
2005-11-30 03:42
2006.06.04
Динамическое присвоение метода компоненту в DLL


15-1146663216
ANB
2006-05-03 17:33
2006.06.04
Где взять сборник сестер Бери ?


8-1136560269
Syrnik
2006-01-06 18:11
2006.06.04
DShow: Разделить стерео аудио на 2 моно


15-1147352220
alex-drob
2006-05-11 16:57
2006.06.04
Сохранить переменную типа TList