Zireael |
Отправлено: 03 Марта, 2019 - 11:18:33
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Ну русский язык не пробовали переключать перед копирование кода.
Цитата: function Èçìåíèòü()
{
visualwindow(MainWindow, 0, 214, 209, 1212, 939, 10, 40, pos, game);
resettextout(1);
}
CODE:function Èçìåíèòü()
{
MainWindow = window ("Aeaeia" );
MainWindow.width=1025 * pos / 100;
MainWindow.height=810 * pos / 100;
movewindow(MainWindow);
visualwindow(MainWindow, 0, 214, 209, 1212, 939, 10, 40, pos, game);
resettextout(1);
} |
|
|
007wan |
Отправлено: 03 Марта, 2019 - 11:20:50
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Ой, извиняюсь, я не знал, что поможет переключение языка. Там функия "Изменить"
(Добавление)
Почему-то отступ от диалога правый и нижний не сохраняются в равных пропорциях
(Добавление)
Ща попробую что-нибудь по прибавлять
(Добавление)
Не, не получается. Я просто не могу Понять. причем тут вообще переменная pos
(Добавление)
CODE:function Èçìåíèòü()
{
MainWindow = window ("Aeaeia" );
MainWindow.width=1025 * pos / 100+10;
MainWindow.height=810 * pos / 100+10;
movewindow(MainWindow);
visualwindow(MainWindow, 0, 214, 209, 1212, 939, 10, 40, pos, game);
resettextout(1);
} Не так.
(Добавление)
007wan пишет:
Пользователь
Эксперт
Просматривает форум
Сообщений всего: 569
Дата рег-ции: Март 2017
Репутация: -1
Карма -12
Поощрить/Наказать
Ой, извиняюсь, я не знал, что поможет переключение языка. Там функия "Изменить"
(Добавление)
Почему-то отступ от диалога правый и нижний не сохраняются в равных пропорциях я же ставил визуальное окно от левого края отступ 10, а от правого и нижнего совсем нету |
|
|
Zireael |
Отправлено: 03 Марта, 2019 - 14:07:32
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Почему-то отступ от диалога правый и нижний не сохраняются в равных пропорциях
Потому что их тоже надо считать.
CODE:function Изменить()
{
MainWindow = window ("Aeaeia" );
MainWindow.width=998 * pos / 100 + 10 + 10 + (MainWindow.width - MainWindow.widthclient);
MainWindow.height=730 * pos / 100 + 40 + 10 + (MainWindow.height - MainWindow.heightclient);
movewindow(MainWindow);
visualwindow(MainWindow, 0, 214, 209, 1212, 939, 10, 40, pos, game);
resettextout(1);
} |
|
|
007wan |
Отправлено: 06 Марта, 2019 - 13:42:53
|
Эксперт
Покинул форум
Сообщений всего: 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");
external(INT, "SetWindowPos", "SetWindowPos", "User32.dll");
//-----------------------------------------------------------------------------------------------------------------------------------------------------
getdisplay(Display_Color, Display_Width, Display_Height);
createdialog(0);
showdialog(0, "Мой диалог", Display_Width/2-400, Display_Height/2-300, 1025, 830, 1, 0);
//-----------------------------------------------------------------------------------------------------------------------------------------------------
win MainWindow = window ("Мой диалог");
win Browser;
int Display_Color, Display_Width, Display_Height;
int HWND;
int MenuInfo[7] = {28, 16, 134217728, 0, 0, 0, 0};
int Menu1, Menu2, Menu3;
int min = 62, max = 100, pos = 62;
//-----------------------------------------------------------------------------------------------------------------------------------------------------
while(window ("Мой диалог") == 0)
{
sleep(1);
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
int Button1 = CreateWindow(0, "BUTTON", "1", 1342177280, 10, 10, 120, 20, formatwi(MainWindow), 0, 0, 0);
int Button2 = CreateWindow(0, "BUTTON", "2", 1342177280, 140, 10, 250, 20, formatwi(MainWindow), 0, 0, 0);
int Button3 = CreateWindow(0, "BUTTON", ">", 1342177280, 610, 10, 20, 20, formatwi(MainWindow), 0, 0, 0);
int Scrollbar1 = CreateWindow(0, "SCROLLBAR", 0, 1342177280, 400, 10, 200, 20, formatwi(MainWindow), 0, 0, 0);
SetScrollRange(Scrollbar1, 2, min, max, 1);
EnableWindow(Button1, 0);
Изменить();
//-----------------------------------------------------------------------------------------------------------------------------------------------------
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(MainWindow.width), 1);
sleep(10);
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
function getmessage(0, WM_CREATE)
{
HWND = gethwnd(0);
SetMenuInfo(Menu1, address(#MenuInfo[0]));
SetMenu(HWND, Menu1);
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
function getmessage(0, WM_COMMAND)
{
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
function Изменить()
{
MainWindow = window ("Мой диалог" );
MainWindow.width = 998 * pos/100+10+10+(MainWindow.width-MainWindow.widthclient);
MainWindow.height = 730*pos/100+40+10+(MainWindow.height-MainWindow.heightclient);
movewindow(MainWindow);
if (Browser.name == "Мой диалог")
{
visualwindow(MainWindow, 0, x[0]-42, y[0]-89, x[1]+188, y[1]+38, 10, 40, pos, Browser);
resettextout(1);
}
if (pos >= 77)
{
if (MainWindow.width > 794)
{
SetWindowPos(Button3, 0, 840, 10, 170, 20, 0);
}
else
{
SetWindowTextA(Button3, "Показать боковое меню");
SetWindowPos(Button3, 0, 610, 10, 170, 20, 0);
}
}
else
{
SetWindowTextA(Button3, ">");
SetWindowPos(Button3, 0, 610, 10, 20, 20, 0);
}
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
Не получается доконца сделать. Нужно, что бы кнопка "показать боковое меню" Меняла свой размер и текст, но это я вроде сделал, а теперь, что бы она двигалась в зависимости от размера окна и двигалась плавно, . Конечная точка диалога - ширина 1024. Нужно сделать так, что бы от ширины диалога от 794 до 1024 кнопка плавно двигалась к краю диалога и была на правом краю. Вообще я показал это на диалоге, но только она перемещается сразу, а мне надо, что бы плавно |
|
|
Dantes3000 |
Отправлено: 06 Марта, 2019 - 14:01:52
|
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
|
три секунды дела (Отобразить)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");
external(INT, "SetWindowPos", "SetWindowPos", "User32.dll");
//-----------------------------------------------------------------------------------------------------------------------------------------------------
getdisplay(Display_Color, Display_Width, Display_Height);
createdialog(0);
showdialog(0, "Мой диалог", Display_Width/2-400, Display_Height/2-300, 1025, 830, 1, 0);
//-----------------------------------------------------------------------------------------------------------------------------------------------------
win MainWindow = window ("Мой диалог");
win Browser;
int Display_Color, Display_Width, Display_Height;
int HWND;
int MenuInfo[7] = {28, 16, 134217728, 0, 0, 0, 0};
int Menu1, Menu2, Menu3;
int min = 62, max = 100, pos = 62;
//-----------------------------------------------------------------------------------------------------------------------------------------------------
while(window ("Мой диалог") == 0)
{
sleep(1);
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
int Button1 = CreateWindow(0, "BUTTON", "1", 1342177280, 10, 10, 120, 20, formatwi(MainWindow), 0, 0, 0);
int Button2 = CreateWindow(0, "BUTTON", "2", 1342177280, 140, 10, 250, 20, formatwi(MainWindow), 0, 0, 0);
int Button3 = CreateWindow(0, "BUTTON", ">", 1342177280, 610, 10, 20, 20, formatwi(MainWindow), 0, 0, 0);
int Scrollbar1 = CreateWindow(0, "SCROLLBAR", 0, 1342177280, 400, 10, 200, 20, formatwi(MainWindow), 0, 0, 0);
SetScrollRange(Scrollbar1, 2, min, max, 1);
EnableWindow(Button1, 0);
Изменить();
//-----------------------------------------------------------------------------------------------------------------------------------------------------
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(MainWindow.width), 1);
sleep(10);
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
function getmessage(0, WM_CREATE)
{
HWND = gethwnd(0);
SetMenuInfo(Menu1, address(#MenuInfo[0]));
SetMenu(HWND, Menu1);
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
function getmessage(0, WM_COMMAND)
{
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
function Изменить()
{
MainWindow = window ("Мой диалог" );
MainWindow.width = 998 * pos/100+10+10+(MainWindow.width-MainWindow.widthclient);
MainWindow.height = 730*pos/100+40+10+(MainWindow.height-MainWindow.heightclient);
movewindow(MainWindow);
if (Browser.name == "Мой диалог")
{
visualwindow(MainWindow, 0, x[0]-42, y[0]-89, x[1]+188, y[1]+38, 10, 40, pos, Browser);
resettextout(1);
}
if (pos >= 77)
{
if (MainWindow.width > 794)
{
SetWindowTextA(Button3, "Показать боковое меню");
SetWindowPos(Button3, 0, MainWindow.height, 10, 170, 20, 0);
}
else
{
SetWindowTextA(Button3, "Показать боковое меню");
SetWindowPos(Button3, 0, 610, 10, 170, 20, 0);
}
}
else
{
SetWindowTextA(Button3, ">");
SetWindowPos(Button3, 0, 610, 10, 20, 20, 0);
}
}
//----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
Kibor |
Отправлено: 06 Марта, 2019 - 15:42:22
|
Эксперт
Просматривает форум
Сообщений всего: 8224
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
CODE:#define WS_SIZEBOX 262144
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "SetWindowLong", "SetWindowLongA", "User32.dll" );
external(INT, "GetWindowLong", "GetWindowLongA", "User32.dll" );
external(INT, "SetWindowPos", "SetWindowPos", "User32.dll");
int Button1, x;
createdialog(0);
SetWindowPos(Button1, 0, x-50, 10, 40, 20, 0);
loop()sleep(1);
function getmessage (0, WM_CREATE)
{
SetWindowLong(gethwnd(0), -16, GetWindowLong(gethwnd(0), -16) + WS_SIZEBOX); // добавляем стиль к диалогу (позволяет растягивать диалог за край окна)
showdialog(0, "Диалог", 558, 234, 250, 300, 1, 0);
Button1 = CreateWindow(0, "BUTTON", "1", 1342177280, 0, 0, 0, 0, gethwnd(0), 0, 0, 0);
}
function getmessage (0, WM_SIZE) // если меняется размер окна
{
x=message.x;
SetWindowPos(Button1, 0, message.x-50, 10, 40, 20, 0);
} |
|
|
007wan |
Отправлено: 06 Марта, 2019 - 17:10:05
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
[quote=Zireael] Цитата:
Везде это делается простым изменением самого размера окна тяганием за его края.
Я уже давно это предложил.(для просмотра ссылки Вам необходимо авторизоваться) /quote]
Еееее, я такой дум дум))) Я подумал, что вы просто растягивайте визуалку на все окно, а за края его не растянуть и всегда думал, что нельзя до сегодняшнего момента. Я затупил как обычно и не прочитал внимательно. Всё, я спасибо, это проще. А как можно ограничить растягивание окна до максимальных размеров?
(Добавление)
Kibor , Извините, я затупил. Углубился сильно в эту тему с ползунком и думал, что нельзя растягивать окно за края
(Добавление)
Как еще сделать и ограничить минимальный размер окна, что бы не пропали контролы. И сделать максимальный размер, что бы красиво было и что бы визуальное окно было близко ккраям рамки окна
(Добавление)
Сейчас код скину
(Добавление)
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");
external(INT, "SetWindowPos", "SetWindowPos", "User32.dll");
//-----------------------------------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------------------------------
getdisplay(Display_Color, Display_Width, Display_Height);
createdialog(0);
showdialog(0, "[Bot] Klondike", Display_Width/2-400, Display_Height/2-300, 1025, 830, 1, 0);
//-----------------------------------------------------------------------------------------------------------------------------------------------------
win MainWindow = window ("My dialog");
win Browser=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;
int min = 62, max = 100, pos = 62;
//-----------------------------------------------------------------------------------------------------------------------------------------------------
while(window ("My dialog") == 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 Button3 = CreateWindow(0, "BUTTON", "", 1342177280, 610, 10, 20, 20, formatwi(MainWindow), 0, 0, 0);
int Scrollbar1 = CreateWindow(0, "SCROLLBAR", 0, 1342177280, 400, 10, 200, 20, formatwi(MainWindow), 0, 0, 0);
SetScrollRange(Scrollbar1, 2, min, max, 1);
EnableWindow(Button1, 0);
Èçìåíèòü();
//-----------------------------------------------------------------------------------------------------------------------------------------------------
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()
{
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)
{
visualwindow(MainWindow, 0, 294, 120, 1292, 850, 10, 40, pos, Browser);
}
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
function Èçìåíèòü()
{
MainWindow = window ("My dialog" );
Browser=window ("Program Manager", "Progman", -1); // îêíî ñ èãðîé
MainWindow.width = 998 * pos/100+10+10+(MainWindow.width-MainWindow.widthclient);
MainWindow.height = 730*pos/100+40+10+(MainWindow.height-MainWindow.heightclient);
movewindow(MainWindow);
visualwindow(MainWindow, 0, 294, 120, 1292, 850, 10, 40, pos, Browser);
resettextout(1);
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
Всё тоже самое только размер, а именно размер окна максимальный равен полному масштабу визуального окна, а минимальный размер окна равен минимальному значениею ползунка |
|
|
|