При разработке приложения под 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;