Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
aleksmir

Строки ListBox разными цветами VB5 или VB6 через API

14.11.2011, 20:19. Показов 2968. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Как сделать в VB5 или VB6 через API, чтобы текст в строках ListBox можно было раскрашивать в разные цвета?
Я конечно понимаю, что можно использовать MSFlexGrid, но опасаюсь, что он отнимет больше ресурсов у компьютера в момент работы (ОЗУ, скорость), а их и так катастрофически не хватает, т.к. программа уже очень большая.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.11.2011, 20:19
Ответы с готовыми решениями:

Сделать разными цветами текст в ListBox
Нужно чтобы текст постоянно менял цвет в ListBox, как можно это осуществить? Public Class Form1 Private Sub...

Сделать разными цветами одну строку ListBox
Private Sub ColoredListBox_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) ...

Как в listbox'e добавлять записи с разными цветами
Делаю чат, нужно чтобы кажды участник добавлял сообщения определенным цветом, как реализовать?

4
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 такого нет.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.11.2011, 22:54
Помогаю со студенческими работами здесь

ListBox, вывод содержимого разными цветами/шрифтами
Надо в ListBox ввести любой список уроков, например(математика, биология и т.д.) и каждый предмет был разного...

Выделение элементов ListBox разными цветами в зависимости от содержания каждого
Добрый день! Создаю программу для удобного чтения лог файла, файл формата .log который переносится в ListBox программы WPF. В лог файле...

Вывести символы строки разными цветами
Задание: Написать на ассемблере IBM PC 2 программы вывода строки на экран: 1)прямой записью в видеопамять 2)с использованием функций...

Выдать в табличной форме строки разными цветами
Help -> Conditional Formatting

Выведите на экран разными цветами старую и новую строки
Анализируйте информацию введенную с клавиатуры в строковую переменную и максимально используйте ее, для того чтобы получить имя файла ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru