$banner_comment_start
CRACKL@B Оригинальный DVD-ROM крэкера: CRACKL@B DVD !
Домой | Статьи | RAR-cтатьи | Форум | Программирование | Скачать | DVD-ROM
Новичку | FAQ | Ссылки | Интервью | Архив | Новости | Связь


Русский / Russian English / Английский

Сейчас на форуме: crypto, RaMMicHaeL, Ara (+7 невидимых пользователей)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 CRACKL@B —› Программирование —› Прозрачность цвета
Посл.ответ Сообщение
4kusNick


Ранг: 373.4 (мудрец)
Статус: Участник
www.revenge-crew.com

Создано: 31 мая 2006 13:39:04
Личное сообщение #1

Доброго времени суток всем!
Никто не знает, как API'вскими методами осуществить прозрачность определенного цвета на окне, как это было реализовано в Делфях (там можно указать определенный цвет, который будет прозрачен, т.е. если у нас есть черный Label и мы делаем прозрачным черный цвет, то в месте, где был лэйбл мы видим грубо говоря дырку, через которую можем кликать на нижележащее окно)?
Спасибо.

-----
... we have to give freedom its REVENGE! ...
[dicr0n]

Ранг: 15.1 (новичок)
Статус: Участник

Создано: 31 мая 2006 13:45:30
Личное сообщение #2

Я реализовал через SetWindowRgn...
4kusNick


Ранг: 373.4 (мудрец)
Статус: Участник
www.revenge-crew.com

Создано: 31 мая 2006 13:48:57
Личное сообщение #3

У меня получилось вырезать кусок окна просто, а вот как сделать так, чтобы вырезался участок определенного цвета, не разобрался...

-----
... we have to give freedom its REVENGE! ...
d1v0x

Ранг: 79.8 (постоянный)
Статус: Участник

Создано: 31 мая 2006 13:51:24
Личное сообщение #4

дык помойму только так и нуно делать...
в аттаче пример на вб6...


5c66_31.05.2006_CRACKLAB.rU.tgz - SetWindowRgn.rar
[dicr0n]

Ранг: 15.1 (новичок)
Статус: Участник

Создано: 31 мая 2006 14:09:16
Личное сообщение #5

Сам я не видел, но слышал ;) что Game Trainer Studio делает исходники на асме с использованием региона методом SetWindowRgn
http://treinerov.net/index.php?go=Files&in=view&id=49
~3 Mb
4kusNick


Ранг: 373.4 (мудрец)
Статус: Участник
www.revenge-crew.com

Создано: 31 мая 2006 14:14:05
Личное сообщение #6

d1v0x
Там точно нориальный архив?
По-моему, он бытый, и там не все...

-----
... we have to give freedom its REVENGE! ...
d1v0x

Ранг: 79.8 (постоянный)
Статус: Участник

Создано: 31 мая 2006 14:24:04
Личное сообщение #7

4kusNick всё гуд...
просто это на форуме такой прикол - зачем то архивы переупаковываюцца в tgz...
я это ужо давно заметил...
кароч распаковываеш и игнорируеш сообщения ВинРАР'а
dermatolog

Ранг: 101.6 (ветеран)
Статус: Участник

Создано: 31 мая 2006 14:41:32
Личное сообщение #8

В Win2000 и свеже есть стандартные средства для этого дела (наподобии усатновки прозрачности для окна).
[dicr0n]

Ранг: 15.1 (новичок)
Статус: Участник

Создано: 31 мая 2006 15:10:01
Личное сообщение #9

Delphi/BCB использует также SetWindowRgn...
В доказательство ;)

Address Stack Procedure / arguments
0012EC6C 5AD7868E ? USER32.SetWindowRgn
0012EC70 00090652 hWnd = 00090652 ('Form1',class='TForm1')
0012EC74 8B04209F hRgn = 8B04209F
0012EC78 00000001 Redraw = TRUE
4kusNick


Ранг: 373.4 (мудрец)
Статус: Участник
www.revenge-crew.com

Создано: 31 мая 2006 15:29:34
Личное сообщение #10

Хм, интересно...
Может, кто на делфях пример простой наваяет?

-----
... we have to give freedom its REVENGE! ...
dermatolog

Ранг: 101.6 (ветеран)
Статус: Участник

Создано: 31 мая 2006 17:07:38
Личное сообщение #11

TMyForm = class (TForm)
...
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
...

const WS_EX_LAYERED = $00080000;
LWA_COLORKEY = $00000001;
LWA_ALPHA = $00000002;

procedure TMyForm .CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
begin
ExStyle:=WS_EX_LAYERED;
end;
end;

procedure TMyForm .FormCreate(Sender: TObject);
begin
SetLayeredWindowAttributes(Handle, ColorToRGB(ПРОЗРАЧНЫЙ_ЦВЕТ), 0, LWA_COLORKEY)
end;
4kusNick


Ранг: 373.4 (мудрец)
Статус: Участник
www.revenge-crew.com

Создано: 31 мая 2006 18:35:34
Личное сообщение #12

dermatolog
Спасибо огромное!

-----
... we have to give freedom its REVENGE! ...
[dicr0n]

Ранг: 15.1 (новичок)
Статус: Участник

Создано: 1 июня 2006 11:11:43
Личное сообщение #13

Вот нарисовал оба метода на masm9
http://slil.ru/22800731
password:cracklab

Безусловно метод SetLayeredWindowAttributes лучше... Жаль работает только в 2k/xp...

[dicr0n] пишет:
Delphi/BCB использует также SetWindowRgn...
В доказательство ;)


На самом деле так рисует uxtheme.dll
А Delphi/BCB использует как-раз-таки SetLayeredWindowAttributes

;)
 CRACKL@B —› Программирование —› Прозрачность цвета
    Для печати 


Оригинальный DVD-ROM крэкера: CRACKL@B DVD !


Вы находитесь на форуме сайта CRACKLAB.RU
Проект ReactOS