Доброго времени суток! Пытаюсь вывести GRushControl на стекло, но почему-то транспарентные области рисуются черным. Как сие победить?
Вот сырье OnPaint:
procedure TMainForm.btnAppMenuPaint(Sender: PControl; DC: HDC);
var
pb:HPAINTBUFFER;
nDC:HDC;
pp:TBPPaintParams;
R:TRect;
begin
if GlassFrame then begin
// свойство, true если DwmExtendFrameIntoClientArea успешно
ZeroMemory(@pp, sizeof(pp));
pp.cbSize := sizeof(pp);
R:=Sender.ClientRect;
pb:=BeginBufferedPaint(dc,R,BPBF_COMPOSITED,nil,nDC);
if pb=0 then PGRushControl(Sender).DoPaint(Sender,DC) else begin
PGRushControl(Sender).DoPaint(Sender,nDC);
BufferedPaintSetAlpha(pb,@R,255);
EndBufferedPaint(pb,true);
end;
end else PGRushControl(Sender).DoPaint(Sender,DC);
end;
В KOLGRushControls.pas сделано
public
procedure DoPaint (Ctl_: PControl; DC: HDC);
Скрин проблемы:
https://yadi.sk/i/GDJUzKFmeymoQ