007wan |
Отправлено: 25 Сентября, 2019 - 12:11:10
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael ,
Подскажите пожалуйста:
Можно ли сделать одновременно 2 окна поверх всех окон?
Например, gethwnd(0) и gethwnd(1)?
Использовать буду команды
CODE: SetWindowPos(gethwnd(0), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
SetWindowPos(gethwnd(1), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
Но суть в том, что он сначала сделает поверх окно, которое 0, а потом уже 1.
(Добавление)
007wan пишет: Можно ли сделать одновременно 2 окна поверх всех окон?
Например, gethwnd(0) и gethwnd(1)? Но окно 1 будет преобладать над окном 0, но оба они будут всегда "каменные" |
|
|
007wan |
Отправлено: 25 Сентября, 2019 - 15:19:21
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Не получается свою картинку в статик воткнуть
Код (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define SS_BITMAP 14
#define SS_NOTIFY 256
#define STM_SETIMAGE 370
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "LoadImage", "LoadImageA", "User32.dll");
int static;
int image1=LoadImage(0, "C:\Users\Home\Desktop\222333\1.bmp", 0, 20, 20, 16);//20х20 обе и 24 цвета
int image2=LoadImage(0, "C:\Users\Home\Desktop\222333\2.bmp", 0, 20, 20, 16);
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 150, 1, 1);
loop()sleep(1);
function getmessage(0, WM_CREATE)
{
static=CreateWindow(0, "STATIC", "", SS_NOTIFY | SS_BITMAP | WS_CHILD | WS_VISIBLE, 20, 100, 100, 20, gethwnd(0), 0, 0, 0);
sendmessage(STM_SETIMAGE, 0, image1, formatiw(static)); // установить изображение image1
}
function getmessage(0, WM_COMMAND)
{
if (message.lparam==static) // если нажата кнопка
{
sendmessage(STM_SETIMAGE, 0, image2, formatiw(static));
while(getkeystate(1))sleep(1);
sendmessage(STM_SETIMAGE, 0, image1, formatiw(static));
}
}
(Добавление)
Я даже папку скачал с примера первой темы и в папку даже запихал свои изображения
(Добавление)
Так что путь указан верно
(Добавление)
А еще можно эти изображения выводить, не растягивая, а просто слева или справа статика в виду иконки? |
|
|
007wan |
Отправлено: 25 Сентября, 2019 - 15:33:01
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
[quote=ivantu] 007wan пишет: Не получается свою картинку в статик воткнуть
(для просмотра ссылки Вам необходимо авторизоваться) /quote]Я тебе серьезно - не работает именно с этой иконкой.
Код (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define SS_BITMAP 14
#define SS_NOTIFY 256
#define BM_SETIMAGE 247
#define STM_SETIMAGE 370
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "LoadImage", "LoadImageA", "User32.dll");
int static;
int image2=LoadImage(0, "C:\Users\Home\Desktop\222333\333.bmp", 0, 20, 20, 16);
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 150, 1, 1);
loop()sleep(1);
function getmessage(0, WM_CREATE)
{
static=CreateWindow(0, "STATIC", "", SS_NOTIFY | SS_BITMAP | WS_CHILD | WS_VISIBLE, 10, 20, 20, 20, gethwnd(0), 0, 0, 0);
int button2=CreateWindow(0, "BUTTON", "", 8+128+1342177280, 20, 60, 20, 20, gethwnd(0), 0, 0, 0); // создать кнопку
sendmessage(STM_SETIMAGE, 0, image2, formatiw(static)); // установить фон
sendmessage(BM_SETIMAGE, 0, image2, formatiw(button2)); // установить изображение кнопки
}
Что ни на кнопку, что ни на статик не выводит 20х20 бмп 24цветов.
Сам попробуй [img]http://s8.hostingkartinok.com/uploads/images/2019/09/9c8489e102c904cba9b25428a81d98c3.bmp[/img]
(Добавление)
Попробуй сам. реально чё за фигня.
(Добавление)
Я даже переместил на рабочий стол и запустил код, но перед этим изменил путь к LoadImage
(Добавление)
Реально не работает, даже свой файл с константами вставил, а в файл еще добавил константы.Код (Отобразить)CODE:#definefile "C:\Users\Home\Desktop\ÌΨ\Kibor\Constants.txt";
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "LoadImage", "LoadImageA", "User32.dll");
int static;
int image2;
int button2;
createdialog(0);
showdialog(0, "Äèàëîã",100, 100, 300, 150, 1, 1);
loop()sleep(1);
function getmessage(0, WM_CREATE)
{
image2=LoadImage(0, "C:\Users\Home\Desktop\333.bmp", 0, 20, 20, 16);
static=CreateWindow(0, "STATIC", "", SS_NOTIFY | SS_BITMAP | WS_CHILD | WS_VISIBLE, 10, 20, 20, 20, gethwnd(0), 0, 0, 0);
button2=CreateWindow(0, "BUTTON", "", 8+128+1342177280, 20, 60, 20, 20, gethwnd(0), 0, 0, 0);
sendmessage(STM_SETIMAGE, 0, image2, formatiw(static));
sendmessage(BM_SETIMAGE, 0, image2, formatiw(button2));
}
(Добавление)
Ну я уже константы даже в файле перепроверил, ничего. |
|
|
ivantu |
Отправлено: 25 Сентября, 2019 - 16:27:03
|
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
|
Все работает ...
(для просмотра ссылки Вам необходимо авторизоваться)
Спойлер (Отобразить)CODE:#define BM_SETIMAGE 247
#define STM_SETIMAGE 370
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "LoadImage", "LoadImageA", "User32.dll" );
int image1=LoadImage(0, "d:\1.bmp", 0, 100, 34, 16); // загрузка картинки кнопки 100*34
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 0);
while(window ("Диалог")==0)sleep(10);
win w=window ("Диалог");
int static=CreateWindow(0, "STATIC", "", 128+14+1342177280, 0, 0, 300, 300, formatwi(w), 0, 0, 0); // создать статик, фон
int button1=CreateWindow(0, "BUTTON", "", 8+128+1342177280, 20, 10, 100, 34, formatwi(w), 0, 0, 0); // создать кнопку
int button2=CreateWindow(0, "BUTTON", "", 8+128+1342177280, 20, 60, 100, 50, formatwi(w), 0, 0, 0); // создать кнопку
sendmessage(STM_SETIMAGE, 0, image1, formatiw(static)); // установить изображение Статик
sendmessage(BM_SETIMAGE, 0, image1, formatiw(button2)); // установить изображение кнопки
loop()sleep(1);
function getmessage(0, WM_COMMAND)
{
if(message.lparam==button1)messagebox("Нажата кнопка Кнопка");
if(message.lparam==button2)messagebox("Нажата кнопка Текст");
} |
|
|
|