Цитата: Можно ли создавать в Немодальных диалогах контролы динамически
Можно.
CODE:#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define SW_SHOW 5
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "ShowWindow", "ShowWindow", "User32.dll");
int button0;
int edit[5]; // массив для 5 edit
int count_edit = 0;
createdialog(0);
showdialog(0, "dialog",100, 100, 300, 300, 1, 1);
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
// создать кнопку
button0=CreateWindow(0, "BUTTON", "Добавить edit", WS_VISIBLE | WS_CHILD, 10, 10, 110, 25, gethwnd(0), 0, 0, 0);
// создать edit, не отображаются, т. к. не указан стиль WS_VISIBLE
for(int i=0; i<sizearray(edit); i++)
edit[i]=CreateWindow(0, "EDIT", "", WS_CHILD | WS_BORDER, 10, 50+i*25, 80, 20, gethwnd(0), 0, 0, 0);
}
function getmessage(0, WM_COMMAND)
{
if(message.lparam == button0) // если нажата кнопка
{
if(count_edit < sizearray(edit)) // если видимо меньше 5 edit (по размеру массива)
{
ShowWindow(edit[count_edit], SW_SHOW); // показать edit
count_edit++; // увеличивает счётчик на 1
}
else messagebox("Уже создано максимальное число edit");
}
} |