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

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

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

> Описание: внутри...
ivantu
Отправлено: 21 Августа, 2019 - 16:14:07
Post Id



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


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




Друзья подскажите пожалуйста, как можно вывести сразу два диалога но чтоб, один был внутри другого, и без верхней полоски в которой пишется название диалога.

вот схема примерная:
(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
вроде бы вот :
Изменяет родительское окно указанного дочернего окна.
CODE:

HWND SetParent(
HWND hWndChild,
HWND hWndNewParent
);


Но я так и не научился правильно использовать то, что в справке майкрософт...
 
 Top
ivantu
Отправлено: 21 Августа, 2019 - 21:03:08
Post Id



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


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




Такое можно реализовать?
 
 Top
ivantu
Отправлено: 22 Августа, 2019 - 07:45:33
Post Id



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


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




Или может есть какая то подложка внутри которой можно разместить контролы, и если скрывать подложку все контролы на ней так же скроются.
(Добавление)
Смысл сделать что то типо вкладок, вот нашел рабочий вариант на C++, может знающие люди помогут оптимизировать его для Кибор
Исходник (Отобразить)

(Отредактировано автором: 22 Августа, 2019 - 07:46:23)

 
 Top
ivantu
Отправлено: 22 Августа, 2019 - 13:12:59
Post Id



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


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




Друзья, что же , нет никаких вариантов, как сделать "многостраничность" через winApi
 
 Top
Kibor
Отправлено: 22 Августа, 2019 - 13:14:43
Post Id



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


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




Убирайте одни контролы за пределы окна, делайте их не активными и на их место ставьте другие сделав их активными.
 
 Top
ivantu
Отправлено: 22 Августа, 2019 - 13:16:25
Post Id



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


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




Очень много контролов, боюсь заплутаться.. (
 
 Top
Dantes3000
Отправлено: 22 Августа, 2019 - 13:36:29
Post Id



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


Покинул форум
Сообщений всего: 1458
Дата рег-ции: Июнь 2016  
Репутация: 58




 ivantu пишет:
Очень много контролов, боюсь заплутаться.. (


Поставить определенные наборы контролов в отдельные функции, которые принимают 0/1, где 1 - установить контролы на место, 0 - убрать за пределы окно.
 
 Top
007wan
Отправлено: 22 Августа, 2019 - 13:46:57
Post Id



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


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




а не проще тебе вывести скрин диалога на диалог? Для каких целей тебе диалог внутри диалога? Просто может другое решение есть.
(Добавление)
Нашел вот. если полезно ббудет
Диалог внутри диалога
 
 Top
Nikanr
Отправлено: 22 Августа, 2019 - 13:55:15
Post Id



Пользователь
Специалист


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




Может это подойдет? Если я конечно правильно понял что требуется

CODE:
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "SendMessage", "SendMessageA", "User32.dll" );

int dil; //контроль диалогов
int baton1, baton2, baton3, baton4;

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


loop() pause(100);

function getmessage(0, WM_CREATE){
baton1=CreateWindow(0, "BUTTON", "Контролы диалога 1",768+8192+1342177280, 12, 100, 100, 40, gethwnd(0), 0, 0, 0);
baton2=CreateWindow(0, "BUTTON", "Контролы диалога 2",768+8192+1342177280, 12, 150, 100, 40, gethwnd(0), 0, 0, 0);
}


function getmessage(0, WM_COMMAND){
if (message.lparam==baton1){
dil=1;//диалог создан
createdialog(1);
showdialog(1, "Диалог", 835, 390, 250, 300, 4, 1);
}
if (message.lparam==baton2){
dil=2;
createdialog(1);
showdialog(1, "Диалог", 835, 390, 250, 300, 4, 1);
}
}

function getmessage(1, WM_CREATE){
if(dil==1){
baton3=CreateWindow(0, "BUTTON", "галка", 3+1342177280, 10, 112, 166, 20, gethwnd(1), 0, 0, 0);
}
}

function getmessage(1, WM_CLOSE){
dil=0;
destroydialog(1);
}


Еще можно добавить WM_LBUTTONDOWN и WM_LBUTTONUP и флаг, что бы галка оставалась визуально активной если диалог закрыть и открыть заново
 
 Top
007wan
Отправлено: 22 Августа, 2019 - 14:04:31
Post Id



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


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




Или это:
Код (Отобразить)

(Добавление)
Да даже тот код, который я выложил можно сделать, что бы 2 диалог был на диалоге, просто координаты удерживать и всё и диалог никуда не уйдет с диалога
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by