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

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

 Страниц (4): [1] 2 3 4 »   

> Без описания
007wan
Отправлено: 27 Февраля, 2019 - 13:53:38
Post Id



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


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




Как сделать, что бы программируемый ползунок из external при его прокрутки изменялся масштаб visuawindow в окне, а с изменением мастаба и уменьшалось и самого окно.
 
 Top
Zireael
Отправлено: 27 Февраля, 2019 - 14:26:21
Post Id



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


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




 Цитата:
а с изменением мастаба и уменьшалось и самого окно.

И как это? Тянем за ползунок и тут же окно диалога меняет размеры?
 Цитата:
Как сделать

Создать диалог, ползунок и вывести визуал можно и по примерам с форума. Начинайте писать код, остальное подскажут.
 
 Top
Kibor
Отправлено: 27 Февраля, 2019 - 15:09:21
Post Id



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


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




 Zireael пишет:
Тянем за ползунок и тут же окно диалога меняет размеры?

Это квест ловкость. Цель - не потерять мышь с ползунка.
(Добавление)
CODE:
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

external(INT, "SetScrollRange", "SetScrollRange", "User32.dll" );
external(INT, "SetScrollPos", "SetScrollPos", "User32.dll" );
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );


int b1, b2, s1, hText, hwnd;

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

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




int min=0, max=300, pos=195;
SetScrollRange(s1,2,min,max,1);
SetScrollPos(s1,2,pos,1);
Изменить();




loop()sleep(1);

function Изменить()
{
SetWindowText(hText, format(pos));

//messagebox (pos);


w.height=pos;
movewindow(w);
}



function getmessage(0, WM_HSCROLL)
{
if (message.lparam==s1)
{

if (message.wparam==1 || message.wparam==3)//SB_LINERIGHT
{
pos=pos+10;
if (pos>max)pos=max;
SetScrollPos(s1,2,pos,1);
Изменить();
return;
}
if (message.wparam==0 || message.wparam==2)//SB_LINELEFT
{
pos=pos-10;
if (pos<min)pos=min;
SetScrollPos(s1,2,pos,1);
Изменить();
return;
}

///////////

if (loword(message.wparam)==5)//Зажали и двигаем
{
pos=pos-(pos-hiword(message.wparam));
if (pos>max)pos=max;
if (pos<min)pos=min;
SetScrollPos(s1,2,pos,1);
Изменить();
}

}
}
//
function getmessage(0, WM_CREATE)//Создание кнопок
{
hwnd = gethwnd(0);
s1=CreateWindow(0, "scrollbar", 0, 1342177280, 10, 10, 200, 20, hwnd, 0, 0, 0);
hText = CreateWindow(0, "STATIC", "",1342177280, 10, 30, 100, 15, hwnd, 0, 0, 0);
}
 
 Top
007wan
Отправлено: 27 Февраля, 2019 - 17:17:15
Post Id



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


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




Спасибо большое. От души. Думаю визальный вывод я сам добавлю.
 
 Top
007wan
Отправлено: 28 Февраля, 2019 - 15:14:03
Post Id



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


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




Блин. Сложные математические вычисления.
Размер моего диалога 1025, 890
визуальное окно выводится по координатам в окне на 10, 100
масштаб от 0 до 100

не знаю как задать размеры ползунка и чего добавить, что бы мастаб визуального окна уменьшался когда крутим влево соотвественно и окно тоже( снизу и справа)
(Добавление)
Если
int min=0, max=100, pos=59;
SetScrollRange(Scrollbar1,2,min,max,1);
SetScrollPos(Scrollbar1,2,pos,1);

То оптимальный размеры окна при 59 будут 615-570
 
 Top
Zireael
Отправлено: 01 Марта, 2019 - 03:15:58
Post Id



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


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




 Цитата:
Размер моего диалога 1025, 890
pos=59

1025 * 59 / 100 = 604
890 * 59 / 100 = 525
 Цитата:
То оптимальный размеры окна при 59 будут 615-570

При таком размере не сохранятся пропорции.
 
 Top
007wan
Отправлено: 01 Марта, 2019 - 14:15:51
Post Id



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


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




CODE:
showdialog(0, "Диалог", Display_Width/2-400, Display_Height/2-300, 1025, 870, 1, 0);



CODE:
visualwindow(MainWindow, 0, x[0]-42, y[0]-89, x[1]+188, y[1]+38, 10, 100, pos, Browser);

Всё-таки не пойму если pos+1, то во сколько раз окно должно увеличиваться и что добавить сюда?
CODE:
int min=0, max=100, pos=59;
SetScrollRange(Scrollbar1,2,min,max,1);
SetScrollPos(Scrollbar1,2,pos,1);
Èçìåíèòü();

function Èçìåíèòü()
{
visualwindow(MainWindow, 0, x[0]-42, y[0]-89, x[1]+188, y[1]+38, 10, 100, pos, Browser);
resettextout(1);
//MainWindow.height=pos;
//movewindow(MainWindow);
}


function getmessage(0, WM_HSCROLL)
{
if (message.lparam==Scrollbar1)
{

if (message.wparam==1 || message.wparam==3)
{
pos=pos+1;

if (pos>max)
{
pos=max;
}
SetScrollPos(Scrollbar1,2,pos,1);
Èçìåíèòü();
return;
}
if (message.wparam==0 || message.wparam==2)
{
pos=pos-1;

if (pos<min)
{
pos=min;
}
SetScrollPos(Scrollbar1,2,pos,1);
Èçìåíèòü();
return;
}

///////////

if (loword(message.wparam)==5)
{
pos=pos-(pos-hiword(message.wparam));
if (pos>max)
{
pos=max;
}

if (pos<min)
{
pos=min;
}
SetScrollPos(Scrollbar1,2,pos,1);
Èçìåíèòü();
}

}
}
//
 
 Top
Zireael
Отправлено: 02 Марта, 2019 - 19:11:21
Post Id



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


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




А ползунок точно нужен? Может проще растянуть диалог до нужных размеров, а визуал подогнать под размер диалога.
code (Отобразить)
 
 Top
007wan
Отправлено: 02 Марта, 2019 - 19:47:20
Post Id



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


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




Да, но у меня еще должны поместиться контролы, а их может бысть много, а пока 2-4.
Я хочу сделать, что бы было сначала 3 галочки, у первой галки справа ползунок.
А ниже всех этих галочек визуальное окно в масштае 100, от моей игры получается большой вывод изображение на диалог, что даж диалог 1025. 890 размера при масштабе 100 но если окно мешает, я хочу , что бы уменьшалось само окно по мере уменьшения мастшаба визуального окна, учитывая, что бы окно уменьшилось не до конца, потому что прпадут контролы, я пока не могу сделать
(Добавление)
Я могу завтра узнать какой захват изображения у меня имеет визуальное окно, скинуть диалог. А то ваще не вдупляю
(Добавление)
А рамку в принципе могу вывести потом по координатам визуального окна
(Добавление)
Рамка нужна, что бы обозначить визуальное окно, которое выключено/сброшено или очищено от экрана
(Добавление)
Просто регулирование ползунком позволит сделать изображение по качеству лучше или хуже, но за счет качества и будет меняться размер окна, что компактно. Так же из-за качества можно будет что-то в игре разглядеть и увидеть, что что-то там делается...
 
 Top
007wan
Отправлено: 03 Марта, 2019 - 10:43:13
Post Id



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


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




CODE:
//-----------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "EnableWindow", "EnableWindow", "User32.dll" );
external(INT, "SetWindowTextA", "SetWindowTextA", "User32.dll" );
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" );
external(INT, "TrackPopupMenu", "TrackPopupMenu", "User32.dll" );
external(INT, "GetDC", "GetDC", "User32.dll" );
external(INT, "SelectObject", "SelectObject", "Gdi32.dll" );
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll" );
external(INT, "TextOut", "TextOutA", "Gdi32.dll" );
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll" );
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll" );
external(INT, "InvalidateRect", "InvalidateRect", "user32.dll");
external(INT, "SetScrollRange", "SetScrollRange", "User32.dll" );
external(INT, "SetScrollPos", "SetScrollPos", "User32.dll" );
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
external(INT, "SetScrollRange", "SetScrollRange", "User32.dll" );
external(INT, "SetScrollPos", "SetScrollPos", "User32.dll" );

external(INT, "EnableWindow", "EnableWindow", "user32.dll");

//-----------------------------------------------------------------------




//-----------------------------------------------------------------------
getdisplay(Display_Color, Display_Width, Display_Height);
createdialog(0);
showdialog(0, "Äèàëîã", Display_Width/2-400, Display_Height/2-300, 1025, 810, 1, 0);





win MainWindow = window ("Äèàëîã");



win game=window ("Program Manager", "Progman", -1); // îêíî ñ èãðîé

int Display_Color, Display_Width, Display_Height;

int HWND;
int MenuInfo[7] = {28, 16, 134217728, 0, 0, 0, 0};
int Menu1, Menu2, Menu3;


//-----------------------------------------------------------------------
while(window ("Äèàëîã")==0)
{
sleep(1);
}
//-----------------------------------------------------------------------
int Button1 = CreateWindow(0, "BUTTON", "ìèí ðàçìåð", 1342177280, 10, 10, 120, 20, formatwi(MainWindow), 0, 0, 0);
int Button2 = CreateWindow(0, "BUTTON", "ìàêñ ðàçìåð", 1342177280, 140, 10, 250, 20, formatwi(MainWindow), 0, 0, 0);
int Scrollbar1 = CreateWindow(0, "SCROLLBAR", 0, 1342177280, 400, 10, 200, 20, formatwi(MainWindow), 0, 0, 0);


int min=0, max=100, pos=100;
SetScrollRange(Scrollbar1,2,min,max,1);
SetScrollPos(Scrollbar1,2,pos,1);
Èçìåíèòü();

function Èçìåíèòü()
{
visualwindow(MainWindow, 0, 214, 209, 1212, 939, 10, 40, pos, game);
resettextout(1);
}


function getmessage(0, WM_HSCROLL)
{
if (message.lparam==Scrollbar1)
{

if (message.wparam==1 || message.wparam==3)
{
pos=pos+1;

if (pos>max)
{
pos=max;
}
SetScrollPos(Scrollbar1,2,pos,1);
Èçìåíèòü();
return;
}
if (message.wparam==0 || message.wparam==2)
{
pos=pos-1;

if (pos<min)
{
pos=min;
}
SetScrollPos(Scrollbar1,2,pos,1);
Èçìåíèòü();
return;
}

///////////

if (loword(message.wparam)==5)
{
pos=pos-(pos-hiword(message.wparam));
if (pos>max)
{
pos=max;
}

if (pos<min)
{
pos=min;
}
SetScrollPos(Scrollbar1,2,pos,1);
Èçìåíèòü();
}

}
}
//-----------------------------------------------------------------------
loop()
{
textout(0, 0, 0, format(pos), 1);
sleep(10);
}
//-----------------------------------------------------------------------
function getmessage(0, WM_CREATE)
{
HWND = gethwnd(0);
SetMenuInfo(Menu1, address(#MenuInfo[0]));
SetMenu(HWND, Menu1);
}
//-----------------------------------------------------------------------
function getmessage(0, WM_COMMAND)
{
if (message.lparam == Button2)
{
SetScrollPos(Scrollbar1,2,100,1);
Èçìåíèòü();
showdialog(0, "Äèàëîã", Display_Width/2-400, Display_Height/2-300, 1025, 810, 1, 0);
}

if (message.lparam == Button1)
{
showdialog(0, "Äèàëîã", Display_Width/2-400, Display_Height/2-300, 615, 510, 1, 0);
SetScrollPos(Scrollbar1,2,59,1);
Èçìåíèòü();

}
}









(Добавление)
Я не знаю как сделать, что бы ползунок регулировал и не уходил в лево меньше, чем д кнопки "мин размер", а если вправо регулировать, то регулировался до "макс размер" в полном масштабе.
PS : торопился и когда жмете кнопку в диалоге, потом жмите на ползунок, что бы обновить окно
(Добавление)
Кнопки я выставил, что бы показать, что я хочу, а на самом деле регулировка окна будет только с помощью ползунка, эти кнопки имеют другое значение
(Добавление)
Я догнал кажется: нужно min=59. А с размерами окна пока думаю
 
 Top
Страниц (4): [1] 2 3 4 »
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by