код (Отобразить)external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);
while(window ("Диалог")==0)sleep(10);
win w=window ("Диалог");
// создание checkbox
int check[3];
check[0]=CreateWindow(0, "BUTTON", "Галка0", 3+1342177280, 20, 10, 70, 20, formatwi(w), 0, 0, 0);
check[1]=CreateWindow(0, "BUTTON", "Галка1", 3+1342177280, 20, 30, 70, 20, formatwi(w), 0, 0, 0);
check[2]=CreateWindow(0, "BUTTON", "Галка2", 3+1342177280, 20, 50, 70, 20, formatwi(w), 0, 0, 0);
int flag_check[3]={0,1,0}; // флаги для checkbox, 0-не выбрана, 1-выбрана
if(sizearray(check)!=sizearray(flag_check)){messagebox("Размеры массива check и flag_check не совпадают"); goto end;}
// ставим галки, для которых флаг = 1
for(int i=0; i<sizearray(flag_check); i++)
{
if(flag_check[i])
{
sendmessage(WM_LBUTTONDOWN, 0, 0, formatiw(check[i]));
sendmessage(WM_LBUTTONUP, 0, 0, formatiw(check[i]));
flag_check[i]=1;
}
}
textbkcolor(255, 65280);
loop()
{
textout(0, 220, 135, format(flag_check[0]), 1);
textout(1, 220, 155, format(flag_check[1]), 1);
textout(2, 220, 175, format(flag_check[2]), 1);
sleep(10);
}
end:;
function getmessage(0, WM_COMMAND)
{
for(int i=0; i<sizearray(check); i++) // цикл для всех галок
{
if (message.lparam==check[i])
{
if(flag_check[i])flag_check[i]=0; // если галка уже была выбрана, то флаг = 0
else flag_check[i]=1; // иначе флаг = 1
break;
}
}
}