Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (9): « 1 2 3 4 5 [6] 7 8 9 »   

> Описание: Немодальные диалоговые окна. Интерактивное управление программой через диалоги.
Kibor
Отправлено: 13 Августа, 2018 - 06:45:43
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Координаты в немодальном окне Кибор не получаются, так как оно идет от свернутого окна Кибор.
 
 Top
Kibor
Отправлено: 05 Сентября, 2018 - 18:37:46
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Сделал закрытие программы полностью при нажатие крестика в диалоговом окне не модальном опционально.
При 7 параметре showdialog равном 3 закрывает полностью программу.
 
 Top
Zireael
Отправлено: 28 Декабря, 2018 - 01:05:31
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




code (Отобразить)

Как-то можно узнать какой был выбран пункт? Например, Файл, Открыть.
 
 Top
Kibor
Отправлено: 31 Января, 2019 - 06:45:29
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Zireael пишет:
Как-то можно узнать какой был выбран пункт? Например, Файл, Открыть.


Получение и обработка сообщений в немодальных окнах Кибор

CODE:
external(INT, "CreateMenu", "CreateMenu", "User32.dll" );
external(INT, "CreatePopupMenu", "CreatePopupMenu", "User32.dll" );
external(INT, "AppendMenu", "AppendMenuA", "User32.dll" );
external(INT, "SetMenuInfo", "SetMenuInfo", "User32.dll" );
external(INT, "SetMenu", "SetMenu", "User32.dll" );

int MENUINFO[7]={28, 16, 134217728, 0, 0, 0, 0};
int HMENU, HMENU2, HMENU3;

HMENU2=CreatePopupMenu();
AppendMenu(HMENU2, 16, 1, "Новый" );
AppendMenu(HMENU2, 16, 2, "Открыть" );
AppendMenu(HMENU2, 16, 3, "Сохранить" );
AppendMenu(HMENU2, 16, 4, "Сохранить как" );

HMENU3=CreatePopupMenu();
AppendMenu(HMENU3, 16, 5, "Вырезать" );
AppendMenu(HMENU3, 16, 6, "Копировать" );

HMENU=CreateMenu();
AppendMenu(HMENU, 16, HMENU2, "Файл" );
AppendMenu(HMENU, 16, HMENU3, "Правка" );

createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);

while(window ("Диалог")==0)sleep(10);
win w=window ("Диалог");


SetMenuInfo(HMENU, address(#MENUINFO[0]));
SetMenu(formatwi(w), HMENU);


loop()
{
w=window ("Диалог");
textout(1, w.left, w.top, " Не обновляли ", 0);
sleep(1);
}

function Простая_функция()//В ней пересчитаем на оконные координаты
{
textout(0, message.x, message.y, " "+format(message.x-w.leftclient)+" "+format(message.y-w.topclient), 1);
}

function getmessage(0, WM_MOUSEMOVE)//Отлавливаем перемещешие мыши над окном
{
Простая_функция();//Перейдем в другую функцию
}


function getmessage(0, WM_MENUCOMMAND)//Отлавливаем клик по пункту меню
{
if (message.lparam==HMENU2)//идентификатор меню "Файл"
{
if (message.wparam==0)messagebox ("Новый");
if (message.wparam==1)messagebox ("Открыть");
if (message.wparam==2)messagebox ("Сохранить");
if (message.wparam==3)messagebox ("Сохранить как");
}

if (message.lparam==HMENU3)//идентификатор меню "Правка"
{
if (message.wparam==0)messagebox ("Вырезать");
if (message.wparam==1)messagebox ("Копировать");
}
}


function getmessage(0, WM_LBUTTONDOWN)//Отлавливаем клик левой кнопки мыши
{
beep(2500, 100);
}

function getmessage(0, 15)//WM_PAINT Отлавливаем обновление окна
{
textout(1, w.left, w.top, " Обновили окно ", 0);
sleep(100);
}
 
 Top
Kibor
Отправлено: 01 Февраля, 2019 - 17:17:22
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Обработка сообщений полученных созданными в Кибор диалоговыми окнами. Создание своего меню, кнопок, списков и тд.
 
 Top
Zireael
Отправлено: 12 Апреля, 2019 - 13:49:12
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
При 7 параметре showdialog равном 3 закрывает полностью программу.

Добавьте 4 - ничего не делать, чтобы можно было в function getmessage(0, WM_CLOSE) выполнить нужный код.
 
 Top
007wan
Отправлено: 13 Апреля, 2019 - 17:20:27
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Zireael , Спасибо!
(Добавление)
А,блин так это еще не реализовано..) я думал, что это ....
 
 Top
Kibor
Отправлено: 13 Апреля, 2019 - 18:00:30
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Zireael пишет:
Добавьте 4 - ничего не делать, чтобы можно было в function getmessage(0, WM_CLOSE) выполнить нужный код.

Обновил.
CODE:
createdialog(0);
//////////

showdialog(0, "Диалог", 558, 234, 250, 300, 4, 1);
//////////

loop() sleep(10);//Убрать после теста

function getmessage(0, WM_CLOSE)
{
if (messageboxyn ("Закрыть программу ?")==1) close();

}
 
 Top
007wan
Отправлено: 13 Апреля, 2019 - 18:58:24
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Kibor , Ай, красава. Просто лучший. спс
(Добавление)
 Kibor пишет:
function getmessage(0, WM_CLOSE)

Как называется функция, при которой выполняется код, когда жмешь кнопку аналогичной "крестику"- "свернуть". WM_ROLL UP не нашел. Для чего: при сворачивании диалога, окно не сворачивается, а только меняет свой размер до минимального. А так он будет скрывать окно, когда вызовется эта функция.
 
 Top
Zireael
Отправлено: 13 Апреля, 2019 - 19:27:56
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Как называется функция, при которой выполняется код, когда жмешь кнопку аналогичной "крестику"- "свернуть".

CODE:
#define SC_MINIMIZE 61472
createdialog(0);
showdialog(0, "Диалог", 558, 234, 250, 300, 1, 1);

loop()sleep(10);

function getmessage(0, WM_SYSCOMMAND)
{
if(message.wparam==SC_MINIMIZE)messagebox("Нажата кнопка свернуть");
}
 
 Top
Страниц (9): « 1 2 3 4 5 [6] 7 8 9 »
Сейчас эту тему просматривают: 13 (гостей: 13, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by