Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
Внизпрозрачность Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c