Форум: "KOL";
Текущий архив: 2010.09.05;
Скачать: [xml.tar.bz2];
ВнизОбработка NM_CUSTOMDRAW в TreeView (WinCE) Найти похожие ветки
← →
Sax-mmS (2008-09-27 00:43) [0]При разработке приложения под WinCE (KOL+Lazarus) появилась необходимость в собственной отрисовке некоторых узлов. По непонятной причине, сообщения c CDDS_ITEMPAINT (да и любые другие, кроме CDDS_PREPAINT) не приходят.
вот пример обрабочика, вешаю через AttachProcfunction 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 вся ветка
Форум: "KOL";
Текущий архив: 2010.09.05;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.003 c