Martin |
Отправлено: 10 Января, 2023 - 20:06:16
|
Мастер
Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022
Репутация: 1
|
Zireael , а как сделать прозрачность картинки через visualwindow?
CODE:visualwindow(0, 0, 0, imagewidth(#Image_0[0][0]), imageheight(#Image_0[0][0]), 100, 120, 100, #Image_0[0][0]);
sleep(1100);
transparency (20);
(Добавление)
И ещё сразу вопрос можно ли растянуть как то картинку на экран по заданным размерам? |
|
|
Zireael |
Отправлено: 11 Января, 2023 - 02:11:26
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как сделать прозрачность картинки через visualwindow?
Выводить изображение на прозрачное окно.
CODE:#define WS_EX_LAYERED 0x00080000
#define WS_EX_TOPMOST 0x00000008
#define WS_EX_TRANSPARENT 0x00000020
#define LWA_COLORKEY 0x00000001
#define LWA_ALPHA 0x00000002
#define COLOR_3DFACE 15
#define GWL_EXSTYLE -20
#define GWL_STYLE -16
external(INT, "SetLayeredWindowAttributes", "SetLayeredWindowAttributes", "User32.dll" );
external(INT, "SetWindowLong", "SetWindowLongA", "User32.dll" );
external(INT, "GetSysColor", "GetSysColor", "User32.dll");
win w=window ("Program Manager", "Progman", -1); // окно, рабочий стол в данном случае
int transparency_level = 180; // прозрачность, 0-255
createdialog(0);
SetWindowLong(gethwnd(0), GWL_EXSTYLE, WS_EX_LAYERED | WS_EX_TOPMOST | WS_EX_TRANSPARENT);
SetWindowLong(gethwnd(0), GWL_STYLE, 0);
SetLayeredWindowAttributes(gethwnd(0), GetSysColor(COLOR_3DFACE), transparency_level, LWA_COLORKEY | LWA_ALPHA);
showdialog(0, "Dialog", 400, 200, 500, 350, 1, 1);
visualwindow(formatiw(gethwnd(0)), 0, 0, 0, 500, 350, 0, 0, 100, w);
loop()sleep(10);
Цитата: можно ли растянуть как то картинку на экран по заданным размерам?
В visualwindow есть параметр масштаб вывода. |
|
|
Martin |
Отправлено: 11 Января, 2023 - 03:50:43
|
Мастер
Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022
Репутация: 1
|
Zireael , Спасибо.
Не могу понять как правильно вывести изображение на окно?
CODE:#define WS_EX_LAYERED 0x00080000
#define WS_EX_TOPMOST 0x00000008
#define WS_EX_TRANSPARENT 0x00000020
#define LWA_COLORKEY 0x00000001
#define LWA_ALPHA 0x00000002
#define COLOR_3DFACE 15
#define GWL_EXSTYLE -20
#define GWL_STYLE -16
external(INT, "SetLayeredWindowAttributes", "SetLayeredWindowAttributes", "User32.dll" );
external(INT, "SetWindowLong", "SetWindowLongA", "User32.dll" );
external(INT, "GetSysColor", "GetSysColor", "User32.dll");
int Image_0[248][168];loadimage (#Image_0[0][0], "C:\Image_0.bmp");
//win w=window ("Program Manager", "Progman", -1); // окно, рабочий стол в данном случае
int transparency_level = 180; // прозрачность, 0-255
createdialog(0);
SetWindowLong(gethwnd(0), GWL_EXSTYLE, WS_EX_LAYERED | WS_EX_TOPMOST | WS_EX_TRANSPARENT);
SetWindowLong(gethwnd(0), GWL_STYLE, 0);
SetLayeredWindowAttributes(gethwnd(0), GetSysColor(COLOR_3DFACE), transparency_level, LWA_COLORKEY | LWA_ALPHA);
showdialog(0, "Dialog", 400, 200, 500, 350, 1, 1);
visualwindow(formatiw(gethwnd(0)), 0, 0, imagewidth(#Image_0[0][0]), imageheight(#Image_0[0][0]), 0, 0, 100, #Image_0[0][0]);
loop()sleep(10); |
|
|
Zireael |
Отправлено: 12 Января, 2023 - 01:24:55
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: в документации указано 9 параметров, что за 10 и где он ?
Цитата: Так же можно указать дополнительно первый (не обязательный параметр) - указатель win какого либо диалогового окна куда мы хотим выводить изображение. В этом случае изображение будет выводиться не на экран, а на этот диалог. Можно указывать как свои не модальные диалоги, так и диалоги чужих программ. |
|
|
|