Kibor |
Отправлено: 22 Ноября, 2017 - 12:26:59
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Оно и не должно убирать.
Для того что бы стереть остатки рис с диалога его надо обновить
Можно сделать это так
Цитата: Указывает прямоугольник для перерисовки окна:
BOOL InvalidateRect
(
HWND hWnd, // указатель на окно
CONST RECT *lpRect, // прямоугольник перерисовки
BOOL bErase // режим перерисовки
);
Если первый параметр NULL, то будут перерисованы все окна. Если второй параметр NULL, то будет перерисована вся область окна. Последний параметр указывает на действия с фоном, если TRUE, то фон будет стерт, иначе оставлен. При удачном выполнении этой функции результат отличен от нуля.
CODE:int pos_size_button0[2][4];
string text_button0[2];
int flag_button0[2];
pos_size_button0[0][0]=69; pos_size_button0[0][1]=180; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
pos_size_button0[1][0]=69; pos_size_button0[1][1]=229; pos_size_button0[1][2]=100; pos_size_button0[1][3]=20;
text_button0[0]="вывести"; text_button0[1]="убрать";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////
showdialog(0, "Диалог", 558, 234, 250, 300, 1, 1);
//////////
external(INT, "InvalidateRect", "InvalidateRect", "user32.dll");
win aw=window("Диалог");//Получаем указатель на наше окно
loop()
{
if (flag_button0[0]==1)
{
flag_button0[0]=0;
visualwindow(aw, 0, 0, 0, 100, 100, 5, 5 , 100, -1);//Включаем вывод на нашем окне
}
if (flag_button0[1]==1)
{
flag_button0[1]=0;
disablevisualwindow(0);
sleep(10);
InvalidateRect(formatwi(aw), 0, 1);
}
sleep(100);//Убрать после теста
} |
|
|
007wan |
Отправлено: 22 Ноября, 2017 - 13:59:54
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: CODE:win aw=window("Наш бот");//Получаем указатель на наше окно
visualwindow(aw, 0, 0, 0, 100, 100, 5, 5 , 100, -1);//Включаем вывод на нашем окне
А как убрать вывод с диалога? disablevisualwindow отключает, но не убирает.
disablevisualwindow не вставляется в редактор из меню правой кнопки мыши.
resettextout(1); |
|
|
007wan |
Отправлено: 23 Ноября, 2017 - 16:08:54
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Дайте, пожалуйста код, на котором идет 2 абсолютно разных диалога(Один основной, другой 'Настройки')Я не помню ссылку для обоих диалогов, типа жмем настройки и причем оба диалога остаются на своих местах, и первый не исчезает. так вот как реализовать вывод картинки с помощью функции, которая в этой теме, причем картинка будет разная или одинаковая(без разницы, главное что бы не влияла на работу скрипта отрицательно)
Вообщем: 2 диалога, на первый идет вывод картинки для кнопки'Настройки', а самих настроек уже будет кнопка 'сохранить' туда выводит другую картинку или одну и ту же.
Сейчас нету времени что-то делать, пока на выходных этим займусь, пожалуйста, сделайте...
(Добавление)
Еще проблема, как не писать много строчек с идентификацией окна?
типа таких:
CODE:wa=window ("Настройки", "Button", window ("Добропожаловать в чат v1.0"));
aw=window ("Выбрать ник", "Button", window ("Добропожаловать в чат v1.0"));
и так для каждой кнопки? причем у разной кнопки будет разная картинка!
(Добавление)
и разный диалог, а так же название диалога!
(Добавление)
Вот пока наработка, но просто времени не хватает...:
CODE:int Ничего[209][36];
loadimage (#Ничего[0][0], "C:\Users\Home\Desktop\МОЁ\тесты картинок\Ничего.bmp");
aw=window ("Выбрать ник", "Button", window ("Добропожаловать в чат v1.0"));//Получаем указатель на наше окно
wa=window ("Настройки", "Button", window ("Добропожаловать в чат v1.0"));//Получаем указатель на наше окно
visualwindow(aw, 0, 0, 0, 80, 22, 0, 0 , 100, -1);//Включаем вывод на нашем окне
visualwindow(wa, 0, 0, 0, 80, 22, 0, 0 , 100, -1);//Включаем вывод на нашем окне
sleep(500);
(Добавление)
Картинок будет много, поэтому я буду использовать третий масив, как с с загрузкой в одной из темах:"Загрузка_"
(Добавление)
А еще ВОПРОС: Все же как сделать , что бы вывод картинки именно в диалоге(она будет закрывать полностью все кнопки) будет поверх кнопок и галок? А лучше поверх для галки пусть будет показывать текст, чисто текст, а фон вокруг текст с точностью до пикселей будет таким, каким будет картинка закрывать. И еще: если несколько картинок выкладывать друг на друга, то было бы не плохо указать какая картинка будет поверх какой, например, я сделал вывод на диалог, она закрыла полностью весь диалог(даже кнопки и галки), потому делаю вывод картинки, только на кнопку, я не знаю будет ли она поверх "фона" или наоборот? |
|
|
007wan |
Отправлено: 25 Декабря, 2017 - 16:29:21
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Я не понимаю. запутался в параметрах: CODE:w1=window("ОКНО");
/*
visualwindow(w1, 0, 0, 0, 100, 100, 5, 5 , 100, -1);
*/
visualwindow(w1, 0, 0, imagewidth(#Разделитель[0][0]), imageheight(#Разделитель[0][0]), 5, 5, 100, -1);
(Добавление)
Нужно, что бы выводил в диалоге по координатам(сам впишу потом) распакованное изображение из массива loadimage
(Добавление)
CODE:w1=window("×àò v1.0");//Ïîëó÷àåì óêàçàòåëü íà íàøå îêíî
visualwindow(w1, 0, 0, imagewidth(#Ðàçäåëèòåëü[0][0]), imageheight(#Ðàçäåëèòåëü[0][0]), 0, 0, 100 , 100, -1);//Âêëþ÷àåì âûâîä íà íàøåì îêíå
где каракули там "Разделитель". w1="Окно"
(Добавление)
CODE:w1=window("Чат v1.0");//Получаем указатель на наше окно
visualwindow(w1, 0, 0, imagewidth(#Разделитель[0][0]), imageheight(#Разделитель[0][0]), 0, 0, 100, 100,#Разделитель[0][0]);//Включаем вывод на нашем окне
Что не так? |
|
|
Kibor |
Отправлено: 25 Декабря, 2017 - 16:46:25
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
007wan пишет: Я не понимаю. запутался в параметрах:
Ага. Она и есть
007wan пишет: visualwindow(w1, ?, 0, 0, imagewidth(#Разделитель[0][0]), imageheight(#Разделитель[0][0]), 0, 0, 100, 100,#Разделитель[0][0]);
CODE:visualwindow(w1, 0, 0, 0, imagewidth(#Разделитель[0][0]), imageheight(#Разделитель[0][0]), 0, 0, 100,#Разделитель[0][0]);
|
|
|
007wan |
Отправлено: 26 Декабря, 2017 - 12:08:15
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
программа вылетает
(Добавление)
CODE:/*
visualwindow(w1, 0, 0, 0, imagewidth(#Разделитель[0][0]), imageheight(#Разделитель[0][0]), 0, 0, 100,#Разделитель[0][0]);
*/ в этом коде вылетает
(Добавление)
CODE:win w1=window("Чат v1.0");//Получаем указатель на наше окно
ой в этом
(Добавление)
А не, всё)) а то я тупая башка это в цикл запихал))
(Добавление)
Можно последний код, пожалуйста и больше не буду вам компосировать мозги.
В общем мне нужно, что ты черная линия(или любой цвет, сам выберу) был вокруг:
кнопки, эдита, статика(на выбор, но мне лучше для статика, просто я не знаю для чего будет сделать сложнее)Т.е есть, к примеру, поле статик, мы знаем где оно распологается, какой размер итд(в коде прописано), и нужно, что бы чисто вокруг(есть поле эдит и буквально след. пиксилем(линией) будет черным цветом) поля было огорождение. Ну просто у меня статик не видно, и я хочу его как бы визуально показать границы, да и самому что бы видеть
(Добавление)
Я просто не хочу создавать там пискельные картинки и выводить их рядом со статиком, я помню код, который там создавался пиксель...
(Добавление)
Ой, не туда прошу прощения) |
|
|
Zireael |
Отправлено: 28 Апреля, 2018 - 23:44:47
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как мне в реальном времени работы скрипта перенести выведенную картинку в место где курсор с помощью горячих клавиш.
CODE:int x=0, y=0; // позиция вывода visual
win w=window ("II", "l2UnrealWWindowsViewportWindow", -1); // указатель на окно
visualwindow(0, 100, 100, 200, 200, x, y, 100, -1);
enabletimer(0);
loop()sleep(10);
CREATE_TIMER(0, 50)
{
if(getkeystate(192)==1) // если нажата Ё
{
getmouse(x, y); // получаем координаты курсора
visualwindow(0, 0, 0, 100, 100, x, y, 100, -1); // выводим visual в полученных координатах
}
} |
|
|
|