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

Вниз

ListView   Найти похожие ветки 

 
TApp   (2007-03-14 15:20) [0]

Пытаюсь сделать собственную отрисовку ListView, подскажите как перехватить изменение ширины колонок, знаю что TWMNotify а дальше...

procedure TFrmMain.ListViewCNDrawItem(var Message: TWMDrawItem);
begin
 with Message.DrawItemStruct^ do begin
   if (itemState and ODS_SELECTED) <> 0 then
   begin
     with LV.Canvas do
     begin
       Pen.Color:= clRed;
       Brush.Color:= clHighlight;
       Font.Color:= clWhite;
       Rectangle(rcItem.Left + 18, rcItem.Top, LV.ClientWidth, rcItem.Bottom);
     end;
   end else
   begin
     with LV.Canvas do
     begin
       Pen.Color:= clWhite;
       Brush.Color:= clWhite;
       Font.Color:= clBlack;
       Rectangle(rcItem.Left + 18, rcItem.Top, LV.ClientWidth, rcItem.Bottom);
     end;
   end;
   TextOut(LV.Canvas.Handle, rcItem.Left + 20, rcItem.Top + 1,
     PChar(LV.Items.Item[itemID].Caption),
       Length(PChar(LV.Items.Item[itemID].Caption)));
   TextOut(LV.Canvas.Handle, LV.Columns[1].Width + 3, rcItem.Top + 1,
     PAnsiChar(LV.Items.Item[itemID].SubItems.Strings[0]),
       Length(PAnsiChar(LV.Items.Item[itemID].SubItems.Strings[0])));
   ImageList1.Draw(LV.Canvas, rcItem.Left + 1, rcItem.Top, 0, true);
   LV.Canvas.Handle:= 0;
 end;
end;

procedure TFrmMain.ListViewCNMeasureItem(var Message: TWMMeasureItem);
begin
 with Message.MeasureItemStruct^ do begin
   ItemHeight:= 16;
 end;
end;

procedure TFrmMain.ListViewWndProc(var Message: TMessage);
begin
 if Message.Msg = CN_DRAWITEM then
   ListViewCNDrawItem(TWMDrawItem(Message))
 else
 if Message.Msg = CN_MEASUREITEM then
   ListViewCNMeasureItem(TWMMeasureItem(Message))
 else
   OldListViewWndProc(Message);
end;

procedure TFrmMain.FormCreate(Sender: TObject);
begin
 OldListViewWndProc:= LV.WindowProc;
 LV.WindowProc:= ListViewWndProc;
end;


 
MBo ©   (2007-03-14 16:29) [1]

проверять NMHdr.code
HDN_BEGINTRACK, HDN_TRACK, HDN_BEGINTRACKW, HDN_TRACKW


 
TApp   (2007-03-14 17:13) [2]


> MBo ©   (14.03.07 16:29) [1]


А примером не поможете плизззз..



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

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

Наверх




Память: 0.47 MB
Время: 0.03 c
15-1173742536
Ш-К
2007-03-13 02:35
2007.04.08
Как работать с данными на CD?


3-1169031100
kyn66
2007-01-17 13:51
2007.04.08
Не открываются базы Visual FoxPro


3-1169389719
Дед Маздай
2007-01-21 17:28
2007.04.08
Аналог Old и New в MS SQL


1-1171298579
Vid0g
2007-02-12 19:42
2007.04.08
Добавление/Извлечение ресурсов в программе


15-1173765754
Layner
2007-03-13 09:02
2007.04.08
ADSL модем + Хаб + 2 ПК в интеренет, возможно?