Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.09.05;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.006 c
2-1276183717
superskii
2010-06-10 19:28
2010.09.05
Сайт в окне.


15-1273206482
12
2010-05-07 08:28
2010.09.05
С днем связи!


6-1225619007
XeON
2008-11-02 12:43
2010.09.05
Порт-Маппер на Delphi 10 (Turbo)


2-1276153349
Sergey2
2010-06-10 11:02
2010.09.05
длина запроса в AdoQuery.sql.text


2-1276157798
novichek
2010-06-10 12:16
2010.09.05
работа с БД