|
aleksmir
|
|
Строки ListBox разными цветами VB5 или VB6 через API14.11.2011, 20:19. Показов 3022. Ответов 4
Метки нет (Все метки)
Здравствуйте!
Как сделать в VB5 или VB6 через API, чтобы текст в строках ListBox можно было раскрашивать в разные цвета? Я конечно понимаю, что можно использовать MSFlexGrid, но опасаюсь, что он отнимет больше ресурсов у компьютера в момент работы (ОЗУ, скорость), а их и так катастрофически не хватает, т.к. программа уже очень большая. |
|
| 14.11.2011, 20:19 | |
|
Ответы с готовыми решениями:
4
Сделать разными цветами текст в ListBox Сделать разными цветами одну строку ListBox
|
|
Comanche
|
|
| 14.11.2011, 21:42 | |
|
Нужно использовать т.н. "custom draw". Поищи в Сети.
Если коротко - то ты подменяешь "оконную процедуру" листбокса [italic](при помощи "сабклассинга")[/italic], затем в новой (своей) оконной процедуре ловишь определённое "notification message" [italic](что-то типа "...ITEM_PREPAINT" - см. MSDN, чтоб узнать наверняка)[/italic], считываешь с параметров процедуры (lParam, wParam) информацию о перерисовываемом элементе листбокса в некую структуру [italic](тут тебе тоже поможет MSDN)[/italic], затем из её полей выдёргиваешь "область" элемента (в некий RECT), а также текст (в некую строковую переменную), ну и затем - FillRect нужным цветом [italic](в зависимости от чётности номера элемента)[/italic], и поверх - DrawText [italic](ту самую строковую переменную)[/italic]. А возможно - обойдётся и без FillRect и DrawText, если, конечно, структура содержит поле типа BckgColor: в таком случае достаточно просто перезаписать этот цвет обратно в структуру. Для всех манипуляций со структурой понадобится АПИ CopyMemory. Это тебе просто "guideline" для дальнейших изысканий
|
|
|
aleksmir
|
|
| 16.11.2011, 02:23 | |
|
Comanche, я в API не силён. Смогу только воспользоваться готовым работающим примером.
|
|
|
Comanche
|
|
| 16.11.2011, 10:53 | |
|
Всё бывает когда-то в первый раз
|
|
|
aleksmir
|
|
| 16.11.2011, 22:54 | |
|
Пример не нашёл, в конце концов заменил на MSFlexGrid. Пришлось целую кучу кода менять (свойства по-другому называются) и таблицу настраивать сложнее.
Но в результате приятная неожиданность - MSFlexGrid заполняется быстрее, чем ListBox. Я думаю это из-за того, что в MSFlexGrid есть возможность запретить перерисовку (свойство Redraw), заполнить, а потом опять разрешить, а в ListBox такого нет. |
|
| 16.11.2011, 22:54 | |
|
Помогаю со студенческими работами здесь
5
ListBox, вывод содержимого разными цветами/шрифтами
Вывести символы строки разными цветами Выдать в табличной форме строки разными цветами Выведите на экран разными цветами старую и новую строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|