Специалист
Покинул форум
Сообщений всего: 231
Дата рег-ции: Март 2019
Репутация: 5
|
При нажатии кнопки вызываются функция, где есть некие инструкции которые необходимо зациклить. Но если мы вызываем эту функцию, и пытаемся вызвать второй диалог или messagebox, он не вызывается
Код:
CODE:int pos_size_button0[3][4];
string text_button0[3];
int flag_button0[3];
pos_size_button0[0][0]=66; pos_size_button0[0][1]=116; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
pos_size_button0[1][0]=100; pos_size_button0[1][1]=156; pos_size_button0[1][2]=100; pos_size_button0[1][3]=20;
pos_size_button0[2][0]=12; pos_size_button0[2][1]=12; pos_size_button0[2][2]=150; pos_size_button0[2][3]=20;
text_button0[0]="Вызвать диалог"; text_button0[1]="Вызвать цикл"; text_button0[2]="Вызвать messagebox";
int pos_size_edit0[1][4];
string text_edit0[1];
pos_size_edit0[0][0]=69; pos_size_edit0[0][1]=98; pos_size_edit0[0][2]=100; pos_size_edit0[0][3]=20;
text_edit0[0]="Поле 0";
enabletimer(0);
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
showdialog(0, "Диалог", 835, 390, 250, 300, 1, 1);
loop() pause(100);
CREATE_TIMER(0,50){
if(flag_button0[0]>0){
flag_button0[0]=0;
createdialog(1, EDIT, #pos_size_edit0[0][0], #text_edit0[0]);showdialog(1, "Диалог", 835, 390, 250, 300, 0, 1);
}
if(flag_button0[1]>0){
flag_button0[1]=0;
ale();
}
if(flag_button0[2]>0){
flag_button0[2]=0;
messagebox(text_edit0[0]);
}
}
function ale(){
w:
pause(1000);
//что то что надо зациклить
goto w;
}
Если использовать getmessage, то проблемы не наблюдается
CODE:
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
int b1,b2,b3;
int pos_size_edit0[1][4];
string text_edit0[1];
pos_size_edit0[0][0]=69; pos_size_edit0[0][1]=98; pos_size_edit0[0][2]=100; pos_size_edit0[0][3]=20;
text_edit0[0]="Поле 0";
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);
function getmessage(0, WM_CREATE)//Создаем контролы при создание окна
{
b1=CreateWindow(0, "BUTTON", "Вызвать цикл", 1342177280, 10, 10, 120, 30, gethwnd(0), 0, 0, 0);
b2=CreateWindow(0, "BUTTON", "Диалог", 1342177280, 10, 50, 120, 30, gethwnd(0), 0, 0, 0);
b3=CreateWindow(0, "BUTTON", "вызвать меседж бокс", 1342177280, 10, 100, 150, 30, gethwnd(0), 0, 0, 0);
}
function getmessage(0, WM_COMMAND)
{
if (message.lparam==b1)arena();
if (message.lparam==b2){createdialog(1, EDIT, #pos_size_edit0[0][0], #text_edit0[0]);showdialog(1, "Диалог", 835, 390, 250, 300, 0, 1);}
if (message.lparam==b3){messagebox(text_edit0[0]);}
}
loop()pause(100);
function arena(){
p:
pause(100);
//что то что надо зациклить
goto p;
}
Так и должно быть или я что-то делаю не так? |