Что нового

Можно ли добавить SolidBitMap в нативный Combo?

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Можно ли добавить цветные квадраты к GUICtrlCreateCombo и как?

Мне нужно все тоже самое как в примере к
Код:
_GUICtrlComboBoxEx_CreateSolidBitMap


Я бы мог использовать _GUICtrlComboBoxEx_Create и не мучатся но не знаю как к нему добавить вот это:
Код:
GUICtrlSetResizing($GUI_CMB_LIST, $GUI_DOCKRIGHT + $GUI_DOCKLEFT+ $GUI_DOCKHEIGHT + $GUI_DOCKTOP)

Получается, мне либо добавить цветные квадраты в стандартный элемент, либо сделать Resizing для нестандартного _GUICtrlComboBoxEx_Create
Помогите решить что нибудь одно. Спасибо.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Так что вы хотите? Картинки можно добавить только в "Ex", а если изменять размеры Combo, то нужно будет центровать надписи, иначе будет не очень красиво.
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Мне нужно цветные квадратики и нужно что бы при изменении размера формы combo тоже автоматически менял ширину по правилам $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKHEIGHT+ $GUI_DOCKTOP
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Т.к в стандартный Combo не вставить графику, то сделал по второму варианту: использовал _GUICtrlComboBoxEx_Create.
А авто изменение размеров подсказали сделать так:
В том же месте где и элемент создается label с одинаковыми размерами и координатами.
Label делается неактивным с прозрачным цветом, без текста и добавляется стандартный GUICtrlSetResizing(label, $GUI_DOCKRIGHT + $GUI_DOCKLEFT+ $GUI_DOCKHEIGHT + $GUI_DOCKTOP)
Слушаем сообщения WM_SIZE в котором получаем размеры ControlGetPos(gui, "", label) и по ним перемещаем _GUICtrlComboBoxEx через WinMove
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
inververs [?]
В том же месте где и элемент создается label с одинаковыми размерами и координатами.
Label делается неактивным с прозрачным цветом, без текста и добавляется стандартный GUICtrlSetResizing(label, $GUI_DOCKRIGHT + $GUI_DOCKLEFT+ $GUI_DOCKHEIGHT + $GUI_DOCKTOP)
Слушаем сообщения WM_SIZE в котором получаем размеры ControlGetPos(gui, "", label) и по ним перемещаем _GUICtrlComboBoxEx через WinMove
На основе этого доделал свою библиотеку GUICtrlSetResizingEx (GUICtrlSetResizingEx - Изменение размера для внешних элементов).
До этого она использовала свой обработчик для изменения размеров, что было нестабильно и муторно :smile:.
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Ну отлично :ok: Только в Resizing не надо перечислять через BitOr нужно обычное сложение.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
inververs [?]
в Resizing не надо перечислять через BitOr нужно обычное сложение.
Уже доказано, что лучше через BitOR (исключение появления лишних значений).
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
CreatoR [?]
Уже доказано, что лучше через BitOR (исключение появления лишних значений).
Ну в данном случает эти константы не все степени двойки, поэтому BitOr тут не правильно использовать
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
inververs
Есть пример когда оно не будет работать с BitOR?
 
Верх