|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Можно ли сделать ComboBox с иконками |
|
||||
|
|
[решено] Можно ли сделать ComboBox с иконками
|
|
Пользователь Сообщения: 61 |
Можно ли сделать 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 | |
|