Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Можно ли сделать ComboBox с иконками

Ответить
Настройки темы
[решено] Можно ли сделать ComboBox с иконками

Пользователь


Сообщения: 61
Благодарности: 0

Профиль | Отправить PM | Цитировать


Можно ли сделать ComboBox с иконками наподобие такого:

если можно подскажите как, возможно и через редактор KODA есть варианты?

похоже сам нашел, попробую _GUICtrlComboBoxEx_AddString($hWnd, $sText[, $iImage = -1[, $iSelecteImage = -1[, $iOverlayImage = -1[, $iIndent = -1[, $iParam = -1]]]]]) из GuiComboBoxEx.au3

Отправлено: 14:31, 24-06-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить 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

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 15:59, 24-06-2009 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 61
Благодарности: 0

Профиль | Отправить 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


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата malev:
если можно поясни
комментарии »
Так там же есть комментарии, и чем описания из справки не устраивают?

Цитата malev:
как код цветным сделать »
Au3ToPost.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 16:19, 24-06-2009 | #4


Пользователь


Сообщения: 61
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 16:47, 24-06-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить 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

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 23:40, 24-06-2009 | #6


Пользователь


Сообщения: 61
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, вопрос решен.

Отправлено: 09:28, 25-06-2009 | #7


Пользователь


Сообщения: 61
Благодарности: 0

Профиль | Отправить PM | Цитировать


возник один ньюанс, какой стиль использовать чтобы получился курсор выделения на весь Combo, у меня получается курсор только на текст с иконкой.

Отправлено: 14:27, 25-06-2009 | #8


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата malev:
чтобы получился курсор выделения на весь Combo »
Что значит "курсор выделения"? Выделяется только необходимая часть (пустоту же нельзя выделить ), и это вроде стилями (или другими методами) не изменить.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 14:43, 25-06-2009 | #9


Пользователь


Сообщения: 61
Благодарности: 0

Профиль | Отправить PM | Цитировать


а как же пример выше, в 1С, на рисунке выделена полностью вся строка до границы выпадающего списка, да и в стандартном Combo тоже также работает выделение?

Отправлено: 16:51, 25-06-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Можно ли сделать ComboBox с иконками

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
нужно сделать 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




 
Переход