|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
canvas Parenta без учета canvas компонента
Добрый день. Пишу свой компонент.
создаю рисунки на paintBoxe. Хочу сделать их с возвможностью установки прозрачности. (полупрозрачности) Код:
var bl:TBlendFunction; Bl.BlendOp := AC_SRC_OVER; Bl.BlendFlags := 0; Bl.SourceConstantAlpha := Blend; Bl.AlphaFormat := 0; // Windows.AlphaBlend(Canvas.Handle,0, 0, Width, Height, TPaintBox(Parent).canvas.handle , 0,0, Width, Height, Bl); Вопрос - как получить Canvas Parenta без учета canvasa компонента... Заранее спасибо! Последний раз редактировалось max_torent, 08.11.2012 в 13:44. |
#2
|
||||
|
||||
Используй GetDC(Parent). Только освобождать не забывай.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
Все равно не выходит( Получается что изображение уже отрисовано на родителе и при расчете прозрачности получается что оно накладывается...
т.е. нужно получить canvas или HWND родителя, с исключенным в это время компонентом... |
#4
|
||||
|
||||
смотри как TLabel сделан
Пишу программы за еду. __________________ |
#5
|
|||
|
|||
А подробнее не подскажите? Где именно копать
|
#6
|
||||
|
||||
Цитата:
Код:
..... unit StdCtrls; ..... procedure TCustomLabel.SetTransparent(Value: Boolean); begin if Transparent <> Value then begin if Value then ControlStyle := ControlStyle - [csOpaque] else ControlStyle := ControlStyle + [csOpaque]; Invalidate; end; end; ..... |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
max_torent (10.11.2012)
|
#7
|
|||
|
|||
poli-smen - СПАСИБО! Получилось сделать так как Вы написали. С помощью ControlStyle... Все оказалось очень просто)
|