|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Можно ли сделать ComboBox с иконками |
|
|
[решено] Можно ли сделать ComboBox с иконками
|
Пользователь Сообщения: 61 |
Профиль | Отправить PM | Цитировать Можно ли сделать ComboBox с иконками наподобие такого:
если можно подскажите как, возможно и через редактор KODA есть варианты? похоже сам нашел, попробую _GUICtrlComboBoxEx_AddString($hWnd, $sText[, $iImage = -1[, $iSelecteImage = -1[, $iOverlayImage = -1[, $iIndent = -1[, $iParam = -1]]]]]) из GuiComboBoxEx.au3 |
|
Отправлено: 14:31, 24-06-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать #include <GUIConstants.au3> #include <GUIComboBoxEx.au3> #include <GUIImageList.au3> ; $hMainGUI = GUICreate("ComboBox With Icons", 300, 150) $hComboBox = _GUICtrlComboBoxEx_Create($hMainGUI, "", 20, 60, 260, 390, $CBS_DROPDOWNLIST) $hImageList = _GUIImageList_Create(16, 16, 5, BitOr($ILC_MASK, $ILC_COLOR32), 1) _GUICtrlComboBoxEx_SetImageList($hComboBox, $hImageList) For $i = 0 To 50 $nImage = _GUIImageList_AddIcon($hImageList, "Shell32.dll", $i) _GUICtrlComboBoxEx_AddString($hComboBox, "Icon " & $i, $nImage, $nImage) Next GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE _GUIImageList_Destroy($hImageList) Exit EndSwitch WEnd |
------- Отправлено: 15:59, 24-06-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 61
|
Профиль | Отправить PM | Цитировать Спасибо Creat0R, за оперативность у меня пример посложнее получился, если можно поясни
комментарии #include <GUIConstants.au3> #include <GuiComboBoxEx.au3> #include <GuiImageList.au3> #Region ### START Koda GUI section ### Form= ;~ создали форму $Form1 = GUICreate("Test Form", 444, 222, 193, 115) ;~ создаем combo, указывая хэндл окна $exCombo = _GUICtrlComboBoxEx_Create($form1,"",2, 2, 394, 100) ;~ создаем невидимый или виртуальный список картинок ;~ 16*16 будущий размер иконок, 5 - Use a 32 bit DIB section(видимо глубина цвета иконок) ;~ 1 - Use a mask (использовать маску,чтобы иконки казались на прозрачном фоне) ;~ 2 - The images in the lists are mirrored (не знаю что за параметр) $IL=_GUIImageList_Create(16, 16, 5, 3) ;~ добавляем иконки, можно в цикле, если из библиотеки For $x = 0 To 2 _GUIImageList_AddIcon ($IL, @SystemDir & "\shell32.dll", $x) Next ;~ здесь по-видимому указывается цвет маски и рисунки накладываются??? для создания эффекта прозрачности _GUIImageList_Add ($IL, _GUICtrlComboBoxEx_CreateSolidBitMap ($exCombo, 0xFF0000, 16, 16)) _GUIImageList_Add ($IL, _GUICtrlComboBoxEx_CreateSolidBitMap ($exCombo, 0x00FF00, 16, 16)) _GUIImageList_Add ($IL, _GUICtrlComboBoxEx_CreateSolidBitMap ($exCombo, 0x0000FF, 16, 16)) ;~ три раза наверно потому что выпадающий список как раз на 3 элемента ;~ далее привязываем созданый список иконок/картинок к combo _GUICtrlComboBoxEx_SetImageList ($exCombo, $IL) ;~ возможно кэшируем иконки??? _GUICtrlComboBoxEx_InitStorage ($exCombo, 150, 300) ;~ добавляем новую строку в combo с указанием индекса иконки из ImageList _GUICtrlComboBoxEx_AddString($exCombo,"be-be-be",0,0) _GUICtrlComboBoxEx_AddString($exCombo,"be-be-be",1,1) _GUICtrlComboBoxEx_AddString($exCombo,"be-be-be",2,2) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Simple Text Colorizer??? |
Последний раз редактировалось malev, 24-06-2009 в 16:52. Отправлено: 16:08, 24-06-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 16:19, 24-06-2009 | #4 |
Пользователь Сообщения: 61
|
Профиль | Отправить PM | Цитировать ну комментарии то я сам и писал, вот и хочу знать правильно ли я понимаю код, в некоторых ставил знаки вопросов в которых сомневаюсь, про справку будет глупая отмазка - английский понимаю частично.
|
|
Отправлено: 16:47, 24-06-2009 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата malev:
#include <GUIConstants.au3> #include <GuiComboBoxEx.au3> #include <GuiImageList.au3> ; #Region ### START Koda GUI section ### Form= ;~ создали форму $Form1 = GUICreate("Test Form", 444, 222, 193, 115) ;~ создаем combo, указывая хэндл окна $exCombo = _GUICtrlComboBoxEx_Create($Form1, "", 2, 2, 394, 100) ;~ создаем невидимый или виртуальный список картинок ;~ 16*16 будущий размер иконок, 5 - Use a 32 bit DIB section(видимо глубина цвета иконок) ;~ 1 - Use a mask (использовать маску,чтобы иконки казались на прозрачном фоне) ;~ 2 - The images in the lists are mirrored (не знаю что за параметр) $IL = _GUIImageList_Create(16, 16, 5, 3) ;~ добавляем иконки, можно в цикле, если из библиотеки For $x = 0 To 2 _GUIImageList_AddIcon($IL, @SystemDir & "\shell32.dll", $x) ;~ добавляем новую строку в combo с указанием индекса иконки из ImageList _GUICtrlComboBoxEx_AddString($exCombo, "be-be-be", $x, $x) Next ;~ далее привязываем созданый список иконок/картинок к combo _GUICtrlComboBoxEx_SetImageList($exCombo, $IL) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### ; While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd |
|
------- Отправлено: 23:40, 24-06-2009 | #6 |
Пользователь Сообщения: 61
|
Профиль | Отправить PM | Цитировать Спасибо, вопрос решен.
|
Отправлено: 09:28, 25-06-2009 | #7 |
Пользователь Сообщения: 61
|
Профиль | Отправить PM | Цитировать возник один ньюанс, какой стиль использовать чтобы получился курсор выделения на весь Combo, у меня получается курсор только на текст с иконкой.
|
Отправлено: 14:27, 25-06-2009 | #8 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата malev:
|
|
------- Отправлено: 14:43, 25-06-2009 | #9 |
Пользователь Сообщения: 61
|
Профиль | Отправить PM | Цитировать а как же пример выше, в 1С, на рисунке выделена полностью вся строка до границы выпадающего списка, да и в стандартном Combo тоже также работает выделение?
|
Отправлено: 16:51, 25-06-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
нужно сделать iso образ диска чем быстро можно его сделать и как | Alko | Автоматическая установка Windows 2000/XP/2003 | 4 | 22-01-2010 19:58 | |
[решено] Подскажите можно ли такое сделать? | Donner | Microsoft Windows NT/2000/2003 | 2 | 25-03-2009 01:16 | |
[решено] Можно сделать и склад для живых вирусов! | VillyVaskof | Защита компьютерных систем | 7 | 10-06-2008 17:55 | |
Вид - "Таблица", но с иконками 32х32. Как это можно сделать? | Al7 | Microsoft Windows 2000/XP | 0 | 11-03-2007 03:46 | |
[решено] Можно ли сделать дистрибутив Windows из установленной системы | portsigar | Microsoft Windows 2000/XP | 10 | 18-01-2007 09:34 |
|