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

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

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

> Без описания
neba2101
Отправлено: 29 Января, 2023 - 11:36:56
Post Id



Пользователь
Мастер


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




Приветствую, как подстроить ширину раскрывающейся части списка combobox под максимальную длину строки в нём? Нашёл ComboBox.DropDownWidth, но не понимаю можно ли его использовать и как.
В процессе работы скрипта длина строки в combobox может меняться.
 
 Top
Zireael
Отправлено: 29 Января, 2023 - 12:22:45
Post Id



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


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




 Цитата:
как подстроить ширину раскрывающейся части списка combobox

CODE:
#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define CBS_DROPDOWNLIST 0x0003
#define CB_ADDSTRING 0x0143
#define CB_GETCURSEL 0x0147
#define CB_SETDROPPEDWIDTH 0x160

external(INT, "GetTextExtentPoint32", "GetTextExtentPoint32A", "Gdi32.dll");
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");

int combo, hdc, max_length=0;

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

loop()sleep(10);

function getmessage(0, WM_CREATE)
{
combo=CreateWindow(0, "COMBOBOX", "", CBS_DROPDOWNLIST | WS_VISIBLE | WS_CHILD, 10, 10, 140, 160, gethwnd(0), 0, 0, 0);
hdc=GetDC(combo);

// добавление строк в комбо
add_combo("123");
add_combo("zzzzzzzzzzzzzzzzzzzzzzzzzzzzz 999");
add_combo("456");
}


function add_combo(string s)
{
int SIZE[2];
char c[999]; strcpy(#c[0], s);
GetTextExtentPoint32(hdc, address(#c[0]), size(#c[0]), address(#SIZE[0])); // узнать длину текста в пикселях
if(max_length<SIZE[0])
{
max_length=SIZE[0]; // запомнить максимальную длину строки
sendmessage(CB_SETDROPPEDWIDTH, SIZE[0]+10, 0, formatiw(combo)); // установить ширину для combo
}
sendmessage(CB_ADDSTRING, 0, address(#c[0]), formatiw(combo));
}
 
 Top
neba2101
Отправлено: 12 Февраля, 2023 - 21:18:21
Post Id



Пользователь
Мастер


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




Приветствую, как изменить текст в combobox? Спасибо!

Код (Отобразить)
 
 Top
Zireael
Отправлено: 12 Февраля, 2023 - 21:41:00
Post Id



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


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




 Цитата:
как изменить текст в combobox?

Удалить значение, вставить новое.
CODE:
#define CB_DELETESTRING 0x0144
#define CB_INSERTSTRING 0x014A
 
 Top
Kibor
Отправлено: 24 Апреля, 2023 - 10:07:07
Post Id



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


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




Не внимательность моя..
Почистил тему от мусора.
 
 Top
Martin
Отправлено: 30 Апреля, 2023 - 16:06:48
Post Id



Пользователь
Мастер


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




А можно снять ограничение на 100 создаваемых статиков?
 
 Top
Zireael
Отправлено: 30 Апреля, 2023 - 16:16:03
Post Id



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


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




 Цитата:
А можно снять ограничение на 100 создаваемых статиков?

Можно. Но, лучше придумать более адекватный интерфейс.
 
 Top
konctantin777
Отправлено: 20 Июня, 2023 - 10:53:03
Post Id



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


Покинул форум
Сообщений всего: 1136
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




 Zireael пишет:
Но, лучше придумать более адекватный интерфейс.

Жаль, что нет вкладок- просто по ним раскидать )
 
 Top
Страниц (6): « 1 2 3 4 5 [6]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Тестирование Кибор »


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




Powered by