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

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

 Страниц (22): В начало « 7 8 9 10 [11] 12 13 14 15 » В конец    

> Без описания
007wan
Отправлено: 01 Апреля, 2019 - 17:13:20
Post Id



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


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




Я не могу понять что куда в этих переменных HMENU, HMENU2, HMENU3, result;
В своем коде уже присутствуют такие, но я хочу добавить меню вызывающееся при клике правой кнопки. Пожалуйста. Можете дать код, где уже есть:
1)Вкладка "Меню", а при наведении на нее вверху, показывается "Настройки".
2)При клике правой кнопки, показывает окно, где содержит 2 вкладки:
- Размер окна(+еще 2 параметра: Минимальный и Максимальный)
- Прозрачность(25,50,75,100)
Я уже находил эти примеры, но проблема в другом, я запутался и не могу совместить свой код, где есть вкладка настройки с переменными, где нужно вставить код "клик по правой кнопки мыши). Поэтому прошу вас сделать вместе код, где есть уже это и то вместе, что бы мне разобраться.
(Добавление)
Просто в моем коде еще и переменные переименованы и мне сложно соединить 2 куска
 
 Top
Zireael
Отправлено: 02 Апреля, 2019 - 03:05:10
Post Id



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


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




code (Отобразить)
 
 Top
007wan
Отправлено: 02 Апреля, 2019 - 15:12:33
Post Id



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


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




Zireael , Спасибо, Просто ЛУЧШИЙ!
(Добавление)
Zireael , Не работает меню, которое вызывается при нажатии на правую кнопку мыши. Я сделал вот что:
CODE:
function getmessage(0, WM_COMMAND)
CODE:
function getmessage(0, WM_RBUTTONDOWN)
CODE:
function getmessage(0, WM_CREATE)

сделал коментами через "/*" до "*/" в результате вставил вместо них, то, что выше и запустил. Работает только настройки.
(Добавление)
Переменные так же все скопировал.
(Добавление)
В результате все блоки мои сейчас выглядят так:
CODE:
function getmessage(0, WM_RBUTTONDOWN)
{
MainWindow = window ("диалог");

result_menu=TrackPopupMenu(HMENU1, TPM_RETURNCMD, message.x+MainWindow.leftclient, message.y+MainWindow.topclient, 0, formatwi(MainWindow), 0);
if(result_menu == 111)
{
messagebox("Выбран пункт Размер окна, Минимальный" );
return;
}

if(result_menu == 222)
{
messagebox("Выбран пункт Размер окна, Максимальный" );
return;
}

if(result_menu == 333)
{
messagebox("Выбран пункт Прозрачность, 25" );
return;
}

if(result_menu == 444)
{
messagebox("Выбран пункт Прозрачность, 50" );
return;
}

if(result_menu == 555)
{
messagebox("Выбран пункт Прозрачность, 75" );
return;
}

if(result_menu == 666)
{
messagebox("Выбран пункт Прозрачность, 100" );
return;
}

}

(Добавление)
CODE:
function getmessage(0, WM_CREATE)
{
HMENU = CreateMenu();
AppendMenu(HMENU, MF_POPUP, 999, "Настройки" );
SetMenuInfo(HMENU, address(#MENUINFO[0]));
SetMenu(gethwnd(0), HMENU);

HMENU1 = CreatePopupMenu();
HMENU2 = CreatePopupMenu();
HMENU3 = CreatePopupMenu();

AppendMenu(HMENU2, MF_STRING, 111, "Минимальный" );
AppendMenu(HMENU2, MF_STRING, 222, "Максимальный" );

AppendMenu(HMENU3, MF_STRING, 333, "25" );
AppendMenu(HMENU3, MF_STRING, 444, "50" );
AppendMenu(HMENU3, MF_STRING, 555, "75" );
AppendMenu(HMENU3, MF_STRING, 666, "100" );

AppendMenu(HMENU1, MF_POPUP, HMENU2, "Размер окна" );
AppendMenu(HMENU1, MF_POPUP, HMENU3, "Прозрачность" );

Object_Button1 = CreateWindow(0, "BUTTON", "", WS_VISIBLE | WS_CHILD, 10, 10, 120, 20, gethwnd(0), 0, 0, 0);
Object_Button2 = CreateWindow(0, "BUTTON", "", WS_VISIBLE | WS_CHILD, 140, 10, 250, 20, gethwnd(0), 0, 0, 0);
Object_Listbox1 = CreateWindow(0, "LISTBOX", "", LBS_OWNERDRAWVARIABLE | WS_BORDER | WS_HSCROLL | WS_VSCROLL | LBS_DISABLENOSCROLL | WS_CHILD | WS_VISIBLE, 400, 10, 200, 200, gethwnd(0), 0, 0, 0);

EnableWindow(Object_Button2, 0);
}

(Добавление)
CODE:
function getmessage(0, WM_COMMAND)
{

if(loword(message.wparam) == 999)
{
MainWindow = window ("диалог");
showdialog(1, "Настройки", MainWindow.left+100, MainWindow.top+100, 600, 500, 0, 1);

sendmessage(EM_LIMITTEXT, 70, 0, formatiw(Object_Edit1));

SendMessage(Object_Checkbox1, BM_SETCHECK, formatsn(format(#Load_Checkbox1[0])), 0);
SendMessage(Object_Checkbox2, BM_SETCHECK, formatsn(format(#Load_Checkbox2[0])), 0);
SendMessage(Object_Checkbox3, BM_SETCHECK, formatsn(format(#Load_Checkbox3[0])), 0);
SendMessage(Object_Checkbox4, BM_SETCHECK, formatsn(format(#Load_Checkbox4[0])), 0);
SendMessage(Object_Checkbox5, BM_SETCHECK, formatsn(format(#Load_Checkbox5[0])), 0);
SendMessage(Object_Edit1, WM_SETTEXT, 0, format(#Load_Edit1[0]), 0);

enabletimer(1);
}}
 
 Top
Zireael
Отправлено: 03 Апреля, 2019 - 01:50:48
Post Id



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


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




 Цитата:
Не работает меню, которое вызывается при нажатии на правую кнопку мыши.

В моём примере работает. Ищите где ошибка у вас.
 Цитата:
MainWindow = window ("диалог" );

Окно хоть найдено? Может 'диалог' с заглавной буквы.
 
 Top
007wan
Отправлено: 03 Апреля, 2019 - 15:06:21
Post Id



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


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




 Zireael пишет:
MainWindow = window ("диалог" );

Окно хоть найдено? Может 'диалог' с заглавной буквы.

У меня окно вообще не "диалог" называется, а по другому и оно везде стоит.
Теперь хочу спросиь: визуальное окно или resettextout() могут сбрасывать меню которое вызывается через ПКМ
(Добавление)
Почему отличаются? int MENUINFO[7] = {28, 16, 134217728, 0, 0, 0, 0};(этот предыдущий) и int MENUINFO[7]={28, MIM_STYLE, 0, 0, 0, 0, 0};(этот тот, котоырй скинул)
 
 Top
Zireael
Отправлено: 04 Апреля, 2019 - 02:11:52
Post Id



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


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




 Цитата:
У меня окно вообще не "диалог" называется, а по другому и оно везде стоит.

Тогда чего удивляться что не показывается меню? Окно не найдено, структура не заполнена, обращение к MainWindow.leftclient ничего не даст.
 Цитата:
Почему отличаются? int MENUINFO[7]

 Цитата:
MNS_NOTIFYBYPOS
Menu owner receives a WM_MENUCOMMAND message instead of a WM_COMMAND message when the user makes a selection.
Владелец меню получает сообщение WM_MENUCOMMAND вместо сообщения WM_COMMAND, когда пользователь делает выбор.

Разные сообщения отправляются при выборе пункта меню.
 Цитата:
визуальное окно или resettextout() могут сбрасывать меню которое вызывается через ПКМ

Закомментируйте эти 2 строчки и проверьте.
 
 Top
007wan
Отправлено: 04 Апреля, 2019 - 15:12:12
Post Id



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


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




 Zireael пишет:

Тогда чего удивляться что не показывается меню? Окно не найдено, структура не заполнена, обращение к MainWindow.leftclient ничего не даст.
Затупил и короче не дописал, что здесь я всегда, где название диалога пишу "диалог", а уменя в коде другое название и я его заменил, но всеравно не работает
(Добавление)
Еще при вставке в список LBS_OWNERDRAWVARIABLE текст, который добавляетсячерез addlist в списке остается невидимым, но кликабельным.
 
 Top
007wan
Отправлено: 04 Апреля, 2019 - 18:18:15
Post Id



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


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




Ладно, я переделаю код. Задам фундамент кода будет то, что ты скидывал...
(Добавление)
Нашел проблему! оказалось, что при добавлении функции
CODE:
function getmessage(0, WM_SETCURSOR)
Не срабатывает меню, которое вызывается ПКМ.
Вопрос: возможно ли исправить? Или как-то повлиять на содержимое так, что бы оно работало и с меню?
Код WM_SETCURSOR (Отобразить)

(Добавление)
ДА, кстати, когда обе функции активны они обе как раз и не работают, хотя я думал, что какая-то из них будет функционировать все таки
(Добавление)
 007wan пишет:
LBS_OWNERDRAWVARIABLE
Убираю опцию и текст снова показывается. Раньше не замечал, пока не заметил, что при запуске вставляет пустые слова, но они невидимы и кликабельны, т.к при нажатии виден указатель + еще полоса прокрутки вниз опускается.

(Отредактировано автором: 04 Апреля, 2019 - 18:18:46)

 
 Top
Zireael
Отправлено: 05 Апреля, 2019 - 03:14:33
Post Id



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


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




Придётся без WM_SETCURSOR и LBS_OWNERDRAWVARIABLE, т. к. кибор не умеет возвращать значения что сообщение обработано.
 
 Top
007wan
Отправлено: 05 Апреля, 2019 - 13:12:29
Post Id



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


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




List Box
-------------------
Как мне с помощью эти функций сделать, что бы при каждом добавлении строчки в Listbox сохранял это в файл? И считается ли это правильным, потому что строчки могут быть добавляться очень быстро или очень медленно, что может не успевать проделывать всю работу, то как лучше? Еще вроде можно как-то добавить колонки в этот список. Вроде через LB_DIR message

(Отредактировано автором: 05 Апреля, 2019 - 13:12:56)

 
 Top
Страниц (22): В начало « 7 8 9 10 [11] 12 13 14 15 » В конец
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by