Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.03;
Скачать: CL | DM;

Вниз

прозрачность   Найти похожие ветки 

 
OlimPer   (2004-02-20 22:21) [0]

Ка сделать прозрачным ShellListView


 
DVM ©   (2004-02-20 23:38) [1]

что значит прозрачным? что через него должно просвечивать?


 
Defunct ©   (2004-02-21 01:01) [2]

;>
Купить видеокарточку с аппаратной поддержкой прозрачности окон. например: GeForce FX.


 
Cobalt ©   (2004-02-21 01:05) [3]

Насколько я знаю, нельзя сделать прозрачным дочернее окно, только "основное". (читал тут в обсуждении прозрачности)


 
DVM ©   (2004-02-21 01:06) [4]


> Насколько я знаю, нельзя сделать прозрачным дочернее окно,
> только "основное".

Можно, я делал, может я тут это и обсуждал. Только через ж..у и подтормаживает.


 
Defunct ©   (2004-02-21 01:20) [5]

> Можно, я делал, может я тут это и обсуждал. Только через ж..у и подтормаживает.

Код в студию!


 
DVM ©   (2004-02-21 01:35) [6]


> Код в студию!

Код публиковать не буду, а принцип опишу в двух словах.
Во-первых родительское окно надо лишить стиля WS_CLIPCHILDREN чтобы оно рисовало "под" своим "ребенком".
Далее получаю в "ребенке" DC родителя и функцией смешения цветов отрисовываю фон родителя на "ребенке" плюс поверхность самого ребенка. Пройдет не для всех контролов - например ясно, что значки ListView так полупрозрачными не сделаешь, а вот его фон его запроста. Кнопки, панели, даже фон Memo можно сделать полупрозрачными.


 
Defunct ©   (2004-02-21 01:51) [7]

Сразу же по ходу вопрос, мы ведь получаем индыксы системной палиты цветов: clBtnFace, clWindow и т.п., как их преробразовать в RGB цвет?


 
Defunct ©   (2004-02-21 01:53) [8]

Сразу же по ходу вопрос: мы ведь получаем индексы системной палиты цветов: clBtnFace, clWindow и т.п., как их преобразовать в RGB цвет?


 
DVM ©   (2004-02-21 01:57) [9]


> Сразу же по ходу вопрос, мы ведь получаем индыксы системной
> палиты цветов: clBtnFace, clWindow и т.п., как их преробразовать
> в RGB цвет?

Не задумывался, я на WinApi писал все, clBtnFace, clWindow не использовал, окна заливал Bitmap-oм, но может это:

GetRValue(); GetGValue(); GetBValue();


 
Defunct ©   (2004-02-21 02:03) [10]

> GetRValue(); GetGValue(); GetBValue();
Нет, это не подходит.
Эти функции просто выбирают значение 0-го, 1-го и 2-го байт из индекса системной палитры. В результате получаем для clBtnFace всегда:

R = $F
G = 0
B = 0


 
DVM ©   (2004-02-21 02:08) [11]


> Defunct © (21.02.04 02:03) [10]

Можно, наверное так:
Если есть конкретное окно, окрашенное, например, clBtnFace, то можно взять его DC, взять пиксел с его поверхности и разложить полученное значение на RGB.


 
Defunct ©   (2004-02-21 02:11) [12]

> то можно взять его DC, взять пиксел с его поверхности
Получилось, пасиба.


 
DVM ©   (2004-02-21 02:12) [13]

А так GetSysColor() же! Как же я забыл. А затем на нее [9].



Страницы: 1 вся ветка

Текущий архив: 2004.03.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
1-6022
olookin
2004-02-21 15:20
2004.03.03
Не могу сформулировать название вопроса...


14-6221
Dmitrich
2004-02-07 04:33
2004.03.03
Диспетчер задач Windows


3-5952
Labert
2004-02-05 17:01
2004.03.03
Документация по DOA на русском?


1-6152
Санек
2004-02-19 14:02
2004.03.03
Список форм приложения


1-6023
an-na2002
2004-02-19 11:18
2004.03.03
файл кнопка Edit