Вниз
Скачать: CL | DM;

Обработка NM_CUSTOMDRAW в TreeView (WinCE)   Найти похожие ветки 

← →
Sax-mmS   (2008-09-27 00:43) [0]

При разработке приложения под WinCE (KOL+Lazarus) появилась необходимость в собственной отрисовке некоторых узлов. По непонятной причине, сообщения c CDDS_ITEMPAINT (да и любые другие, кроме CDDS_PREPAINT) не приходят.

вот пример обрабочика, вешаю через AttachProc
function ProcTVCustomDrawItem( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean;
var
 CD: PNMLVCustomDraw;
 ...
begin
 Result := False;
 if (Msg.message = WM_NOTIFY) then
 begin
   CD := Pointer( Msg.lParam );
   if longint(CD.nmcd.hdr.code) = NM_CUSTOMDRAW then
   begin
     Rslt := CDRF_DODEFAULT;
     if CD.nmcd.dwDrawStage = CDDS_PREPAINT then
       Rslt := CDRF_NOTIFYITEMDRAW
     else
       MsgOK(Format("0x%x", [CD.nmcd.dwDrawStage]));
   end;
 end;
end;


← →
mdw ©   (2008-09-27 16:14) [1]

Посмотри как реализованна отрисовка в TKOLmdvTreeListEdit, там используется пользовательская отрисовка TreeView.


← →
Compiler ©   (2008-09-27 17:54) [2]

Может заменить
> if CD.nmcd.dwDrawStage = CDDS_PREPAINT then

на
if LongBool(CD.nmcd.dwDrawStage and CDDS_PREPAINT) then


← →
Sax-mmS   (2008-09-28 11:45) [3]

mdw , спасибо а пример. Косяк был в том, я не возвращал Result := True и сообщение уходило на дальнейшую обрабоку.



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

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



Память: 0.45 MB
Время: 0.004 c
15-1275828843
Копир
2010-06-06 16:54
2010.09.05
Жизнь на Титане?


15-1276159597
George
2010-06-10 12:46
2010.09.05
Iptables


15-1276031254
Юрий Зотов
2010-06-09 01:07
2010.09.05
Кто знает Висту и семерку - нужна консультация


15-1276163521
bss
2010-06-10 13:52
2010.09.05
Работа TDateTime в отрицательном диапазоне


3-1244113042
ganda
2009-06-04 14:57
2010.09.05
Работа функцией UDF при вставки записи в Таблицу




   Наверх