Adomb |
Отправлено: 30 Января, 2020 - 18:37:03
|
Мастер
Покинул форум
Сообщений всего: 185
Дата рег-ции: Июль 2015
Репутация: 1
|
Как сделать, чтоб другая/другие галка/галки снимались и её/их флаг обнулялся, если чекаешь другую галку?
код (Отобразить)CODE:external(INT, "CreateWindow", "CreateWindowExA", "User32.dll"); external(INT, "SendMessage", "SendMessageA", "User32.dll");
int n, colv=5;
int chek[5], flchek[5]; for(n=0;n<sizearray(flchek);n++){flchek[n]=0;}
string name[5]={"1","2","3","4","5"};
int gx, gy, col; getdisplay(col, gx, gy);
createdialog(0); showdialog(0,"test",gx/2-150,gy/2-170,300,195,1,1);
Ppause(200000);
function getmessage(0, WM_CREATE)
{int ny=20, i;
/////--------CHEK
for(i=0;i<colv;i++){chek[i]=CreateWindow(0,"BUTTON",name[i],3+1342177280,10,ny,200,15,gethwnd(0),0,0,0); ny=ny+20;}
}
function getmessage(0, WM_COMMAND)
{int i;
for(i=0;i<sizearray(chek);i++){if(message.lparam==chek[i]){if(flchek[i])flchek[i]=0; else flchek[i]=1;}}
}
function Ppause(int p)
{looptime(p){pause(100);}
} (Отредактировано автором: 30 Января, 2020 - 18:40:40) |
|
|
Zireael |
Отправлено: 30 Января, 2020 - 19:34:06
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
AUTORADIOBUTTON (Отобразить)CODE:#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define BS_AUTORADIOBUTTON 9
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
int b[3];
int check=-1;
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);
loop()
{
textout(0, 0, 0, "Выбрана галка: "+format(check), 1);
sleep(10);
}
function getmessage(0, WM_CREATE)
{
b[0] = CreateWindow(0, "BUTTON", "Check0", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 20, 10, 70, 20, gethwnd(0), 0, 0, 0);
b[1] = CreateWindow(0, "BUTTON", "Check1", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 20, 30, 70, 20, gethwnd(0), 0, 0, 0);
b[2] = CreateWindow(0, "BUTTON", "Check2", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 20, 50, 70, 20, gethwnd(0), 0, 0, 0);
}
function getmessage(0, WM_COMMAND)
{
if (message.lparam==b[0]){check=0; return;}
if (message.lparam==b[1]){check=1; return;}
if (message.lparam==b[2]){check=2; return;}
} |
|
|
Zireael |
Отправлено: 30 Мая, 2020 - 19:36:56
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как скрыть окно через hidedialog(0); нажатием определенной клавиши, например insert
CODE:#define VK_INSERT 45
external(INT, "RegisterHotKey", "RegisterHotKey", "User32.dll");
createdialog(0);
showdialog(0, "Dialog", 300, 300, 500, 300, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
RegisterHotKey(gethwnd(0), 1, 0, VK_INSERT); // регистрируем хоткей
}
function getmessage(0, WM_HOTKEY)
{
if(message.wparam==1){hidedialog(0); return;}
} |
|
|
darksell |
Отправлено: 30 Мая, 2020 - 20:12:37
|
Прохожий
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2018
Репутация: 0
|
Zireael пишет: Цитата: как скрыть окно через hidedialog(0); нажатием определенной клавиши, например insert
CODE:#define VK_INSERT 45
external(INT, "RegisterHotKey", "RegisterHotKey", "User32.dll");
createdialog(0);
showdialog(0, "Dialog", 300, 300, 500, 300, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
RegisterHotKey(gethwnd(0), 1, 0, VK_INSERT); // регистрируем хоткей
}
function getmessage(0, WM_HOTKEY)
{
if(message.wparam==1){hidedialog(0); return;}
}
Спасибо, не знаю почему сразу не написал, но как его обратно так-же открыть, если не сложно.. |
|
|
darksell |
Отправлено: 30 Мая, 2020 - 21:07:06
|
Прохожий
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2018
Репутация: 0
|
Zireael пишет: Цитата: но как его обратно так-же открыть
Тоже insert или другой клавишей?
да тоже insert |
|
|
Zireael |
Отправлено: 30 Мая, 2020 - 21:19:17
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: но как его обратно так-же открыть
CODE:#define VK_INSERT 45
external(INT, "RegisterHotKey", "RegisterHotKey", "User32.dll");
int flag_insert = 0;
createdialog(0);
showdialog(0, "Dialog", 300, 300, 500, 300, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
RegisterHotKey(gethwnd(0), 1, 0, VK_INSERT); // регистрируем хоткей
}
function getmessage(0, WM_HOTKEY)
{
if(message.wparam==1)
{
if (flag_insert){flag_insert=0; showdialog(0, "Dialog", 300, 300, 500, 300, 1, 1);}
else {flag_insert=1; hidedialog(0);}
return;
}
} |
|
|
|