Форум: "Начинающим";
Текущий архив: 2007.08.05;
Скачать: [xml.tar.bz2];
ВнизTPanel + WS_EX_Transparent + PNG = ... Найти похожие ветки
← →
000001 (2007-07-06 22:55) [0]Задача: накрыть некоторые элементы (TEdit, TLabel, TMemo, ...) прозрачной панелью, на которой размещен полупрозрачный PNG-рисунок.
Всё ок, в случае с TButton и TLabel, а вот в случае TEdit и TMemo - не получается, лезут они сверху прозрачной панели, сверху PNG-картинки.
Прозрачность панели реализуется так:{ TPanel }
procedure TPanel.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle + WS_EX_Transparent;
end;
procedure TPanel.Paint;
var
XBitMap: TBitMap;
XOldDC: HDC;
XRect: TRect;
begin
if (csDesigning in ComponentState)
then inherited Paint
else begin
XRect := ClientRect;
XOldDC := Canvas.Handle;
XBitMap := TBitMap.Create;
try
XBitMap.Height := Height; XBitMap.Width:=Width;
Canvas.Handle := XBitMap.Canvas.Handle;
inherited Paint;
RedrawWindow(Parent.Handle, @XRect, 0,
RDW_ERASE or RDW_INVALIDATE or
RDW_NOCHILDREN or RDW_UPDATENOW);
finally
Canvas.Handle := XOldDC;
Canvas.BrushCopy(XRect, XBitMap, XRect, Color);
XBitMap.Free;
end;
end;
end;
Что посоветуете?
← →
hommRO (2007-07-06 23:01) [1]> Что посоветуете?
Edit1.OnChange
Panel1.Invalidate;
← →
000001 (2007-07-06 23:09) [2]Посмотрел я CM_INVALIDATE, да срабатывает, хорошо, но получается интересно: прозрачность (и вообще прозрачность ли?) TImage начинает уменьшаться с каждым вызовом Invalidate. Т.е. что тут и от чего это происходит от моего прозрачного TPanel или от полупрозрачного PNG...по чему так? и что делать?
← →
hommRO (2007-07-06 23:14) [3]> и что делать?
Вопрос по нармальному задать?
← →
000001 (2007-07-06 23:24) [4]Не знаю, как сказать. Делаю Panel.Invalidate, вся полупрозрачность от PNG теряется.
← →
hommRO (2007-07-07 00:13) [5]Мое мнение ввобще на счет сабжа: для реализации этого в win32 уйдет сил не меньше, чем при реализации с нуля (собственной отрисовкой контролов, событий клавиатуры, но просто на одном окне. с WS_EX_Transparent вообще ничего хорошего никогда не получится.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c