вообщем) срабатывает нажатие вылезает диалог и снова исчезает
CODE:
external(INT, "IsWindowVisible", "IsWindowVisible", "User32.dll");
int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
pos_size_button0[0][0]=74; pos_size_button0[0][1]=122; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="Кнопка 0";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////
showdialog(0, "Диалог", 675, 300, 250, 300, 0, 1);
//////////
Z:sleep(500);
win w=window("Диалог");
enabletimer(0);
//нажимаем кнопку на форме и прячем диалог, тушим таймер и выходим из цикла переходя в след цикл
loop()
{
if(flag_button0[0]==1)
{
disabletimer(0);
hidedialog(0);
break;
}
sleep(10);
}
//цикл ожидания нажатия клавиш CTRL+A
loop()
{
//регистрируем нажатие и возвращаем скрытую форму, далее переход по метке
if (getkeystate(65)==1 && getkeystate(17)==1)
{
beep(3000, 500);
sleep(200);
beep(3000, 500);
sleep(200);
beep(3000, 500);
sleep(200);
showdialog(0, "Диалог", 675, 300, 250, 300, 0, 1);
break;
}
sleep(10);
}
goto Z;
CREATE_TIMER(0, 1000)
{
if(IsWindowVisible(formatwi(w))==0)close();
}
(Добавление)
нажимаю снова ктрл+а снова три гудка появился и исчез... видимо воспринимает клавишу нажатой... дошло флаг кнопки сбросить нужно))
(Добавление)
ну и в завершение я так понимаю чтобы окно выходило на тех координатах где оно было скрыто мне нужно эти координаты запомнить - так?
(Добавление)
Zireael пишет: Цитата: а как вернуть то окно которое скрылось
Перед тем как скрыть окно нужно записать параметры в переменные. Вызывать диалог потом уже с этими переменными.
Zireael пишет: Цитата:
если я его возьму и сверну в диалоге скомпиленого скрипта то что произойдет?
Свернуть окно и скрыть не одно и тоже.
Сворачивать диалог можно будет, это не влияет на видимость окна.
Соберите скрипт в exe и посмотрите. Вместо messagebox("Окно скрыто" ; напишите close();
Цитата:
есть ли в либах чтот типа IsWindowVisible только для закрытия?
Для закрытия чего? Кибор можно закрыть через close().
цитату взял из темы про закрытие кибора крестиком.
методом тыка проб и ошибок заметил следующее:
есть скрытие диалога посредством крестика в углу и есть скрытие посредством hidedialog
получается if(IsWindowVisible(formatwi(w))==0) никак не реагирует на окно срытое программно, в отличии от нажатия крестик... в чем разница?)
(Добавление)
понедельник день тяжелый... прошу прощения... не реагирует потому что таймер выключается принудительно по нажатию кнопки на форме))(Отредактировано автором: 03 Сентября, 2018 - 11:49:05) |