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

Вниз

TListBox, CNDrawItem   Найти похожие ветки 

 
Pavelq   (2008-01-05 23:07) [0]

Мне захотелось из TListBox убрать выделение фокуса (избавиться от прорисовки DrawFocusRect), я попробовал сделать наследника TListBox:
 TListBox = class(StdCtrls.TListBox)
 private
   procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;
 end;


В котором обработать CN_DRAWITEM по своему, без вызова DrawFocusRect. (Получается, что мне нужно избавиться только от одной строки из оригинала)

procedure TCustomListBox.CNDrawItem(var Message: TWMDrawItem);
var
 State: TOwnerDrawState;
begin
 with Message.DrawItemStruct^ do
 begin
   State := TOwnerDrawState(LongRec(itemState).Lo);
   FCanvas.Handle := hDC;
   FCanvas.Font := Font;
   FCanvas.Brush := Brush;
   if (Integer(itemID) >= 0) and (odSelected in State) then
   begin
     FCanvas.Brush.Color := clHighlight;
     FCanvas.Font.Color := clHighlightText
   end;
   if Integer(itemID) >= 0 then
     DrawItem(itemID, rcItem, State) else
     FCanvas.FillRect(rcItem);
   if odFocused in State then DrawFocusRect(hDC, rcItem);
   FCanvas.Handle := 0;
 end;
end;

Но понятное дело мне не удается реализовать задумку, ибо например FCanvas находится в private у оргинала, и у меня нет доступа к нему из наследника.

Что в таком случае сделть?


 
Джо ©   (2008-01-05 23:13) [1]

Рисуй в обработчике OnDrawItem при Style := OwnerDrawFixed.


 
{RASkov} ©   (2008-01-05 23:16) [2]

> [0] Pavelq   (05.01.08 23:07)

Зато остается Canvas :) Чем он тебе не угодил?)
ЗЫ Букавку F убери....


 
{RASkov} ©   (2008-01-05 23:17) [3]

Кстати... да, что бы заного отрисовать содержимое листбокса, незачем делать наследника.... См [1]



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
2-1199647861
206196131
2008-01-06 22:31
2008.02.03
Midi окна из dll дайте направление движения


15-1199042430
Piter
2007-12-30 22:20
2008.02.03
Приготовление коктейлей


9-1161788337
Sholah_Weras
2006-10-25 18:58
2008.02.03
Морской, блин, бой.


2-1199785667
fics
2008-01-08 12:47
2008.02.03
Помогите с запросом к БД


2-1199652100
223001
2008-01-06 23:41
2008.02.03
уважаемые мастера delphi подскажите как сделать кнопку