![]() |
![]() ![]() ![]() | |
|
Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|| Форумы Здесь вы можете задать свой вопрос и наверняка получите ответ |
ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
| ||
![]() | ||
|
Чтобы не потерять эту дискуссию, сделайте закладку
« предыдущая ветвь | форум | следующая ветвь »
DwmExtendFrameIntoClientArea и корректный вывод PBitmap
ParanoiS © (02.03.15 20:45)Доброго времени суток! Пытаюсь вывести 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
ParanoiS © (03.03.15 20:12) [1]на скрине кстати видно, что btnAppMenu имеет черную область, а кнопка рядом (btnRibbonQuick[i]) - цвет DEF_ColorOuter.. Все свойства у них одинаковые, т.к. создаются динамически одним кодом..
Разрешается использование тегов форматирования текста:
версия для печати
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)
|
![]() ![]() ![]() |