Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2007-08-21 13:15:16 ЛС | профиль | цитата
Ну я-то - хоть к пчелам в улей...

[size=-2]------ Добавлено в 12:46
nesco писал(а):
а ты прозрачность у Label'a убери и посмотри. Все адекватно будет работать.

А вот разобрался немного...
Это KOL виноват, а не я, однако

В нашем KOL такое:
procedure DoDrawChildrenDblBuffered( DC: HDC; WndParent: HWnd; const RectParent: TRect;
....
var R, CR: TRect;
Save: Integer;
P, P0: TPoint;
begin
while W <> 0 do
begin
if IsWindowVisible( W ) then
begin
....
DoDrawChildrenDblBuffered( DC, W, CR, GetWindow( W, GW_CHILD ) );
RestoreDC( DC, Save );
end;
W := GetWindow( W, GW_HWNDNEXT );
end;
end;
А в последних KOL-ах уже правильно:
function WndProcTransparent( Sender: PControl; var Msg: TMsg;
....
case Msg.message of
WM_ERASEBKGND: Result := TRUE;
WM_PAINT:
.....
Wnd := GetWindow( Sender.fHandle, GW_CHILD );
Wnd := GetWindow( Wnd, GW_HWNDLAST);
while Wnd <> 0 do begin
if IsWindowVisible(Wnd) then begin
....
end;
Wnd := GetWindow( Wnd, GW_HWNDPREV );
end;
....
И чего теперь делать - фиг его знает ...

карма: 9

0