Главная страница
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.013 c
2-1276145325
tippa
2010-06-10 08:48
2010.09.05
появляется лишний поток


15-1273241499
Кто б сомневался
2010-05-07 18:11
2010.09.05
Для тех кому не нравиться новый вид Гугла.


15-1276201773
Юрий
2010-06-11 00:29
2010.09.05
С днем рождения ! 11 июня 2010 пятница


6-1226058064
Buckazoid
2008-11-07 14:41
2010.09.05
Права доступа пользователей домена


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