Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
max-@
0 / 0 / 0
Регистрация: 22.03.2011
Сообщений: 68
#1

Разноцветный текст в ListBox - C++

30.03.2011, 02:46. Просмотров 2074. Ответов 6
Метки нет (Все метки)

У меня даже нет версий как это сделать...........
Помогите пож..........
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2011, 02:46     Разноцветный текст в ListBox
Посмотрите здесь:

Разноцветный текст - C++
О великие сенсеи программирования, вопрос к вам =) каким кодом можно сделать разноцветный текст в появляющейся консольке, код с++

Разноцветный текст в консоли - C++
Народ, подскажите как сделать так чтобы, скажем, в слове "Hello" разные буквы выводились разным цветом system("сolor 1F"); красит весь...

Графика: Разноцветный шестиугольник - C++
Написать программу, генерирующую на экране разноцветный шестиугольник, цвета секторов которого меняются циклически. После трех циклов смены...

Определить, удовлетворяет ли текст следующему свойству: Текст совпадает с каким то отрезком ряда 0123456789 (например: 2, 678, 89) - C++
Задача В заданный непустой текст входят только цифры и буквы. Определить, удовлетворяет ли он следующему свойству:Текст совпадает с...

Преобразовать исходный текст в текст с выровненными краями - C++
Дан текстовый файл in.txt, содержащий произвольный текст. Получить файл out.txt, содержащий исходный текст с выровненными краями....

Преобразование текст -> двоичный код -> текст - C++
// praci5.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <stdio.h> #include <conio.h> ...

Тема: Строки Найти в тексте для каждого слово букву, которая само чаще встречается. Текст вводится с клавиатуры. Оригинальный текст и результат должны - C++
Найти в тексте для каждого слово букву, которая само чаще встречается. Текст вводится с клавиатуры. Оригинальный текст и результат должны...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kovalsky2
0 / 0 / 0
Регистрация: 05.08.2009
Сообщений: 96
30.03.2011, 16:03     Разноцветный текст в ListBox #2
Цветные буковки!!)
C GDI - дружите?
Cмысл в том что выводить текст,выделение строчки надо рисовать самому.
Вечерком что-нибуть изображу.
Kovalsky2
0 / 0 / 0
Регистрация: 05.08.2009
Сообщений: 96
30.03.2011, 23:08     Разноцветный текст в ListBox #3
В стиле окошка ListBox должно быть LBS_HASSTRINGS | LBS_OWNERDRAWFIXED.
LBS_HASSTRINGS - для того чтоб работал LB_GETTEXT
LBS_OWNERDRAWFIXED - означает что мы сами всё будем рисовать.
(LBS_OWNERDRAWVARIABLE - тоже сами,тока различная высота строк или что то в этом духе).
Согласно такому стилю ListBox появиться месcccага
WM_DRAWITEM,lParam которой будет LPDRAWITEMSTRUCT.
Ну, а дальше начнём рисовать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
      case WM_DRAWITEM:
      { 
        DRAWITEMSTRUCT *Drw=(LPDRAWITEMSTRUCT)lParam;
        COLORREF    crNormal =GetSysColor(COLOR_WINDOW);
        DWORD       colorText=RGB(rand(),rand(),rand());
        char text[255];
        int res=SendMessage(Drw->hwndItem,LB_GETTEXT,(WPARAM) Drw->itemID,(LPARAM)text);
        HBRUSH Br,Norm;
        Br = CreateSolidBrush(GetSysColor( COLOR_HIGHLIGHT ) );
        Norm = CreateSolidBrush(GetSysColor(COLOR_WINDOW) );
        SetBkMode(Drw->hDC,TRANSPARENT);
        if (Drw->itemState&ODS_SELECTED)
        {
        SetTextColor(Drw->hDC,colorText^GetSysColor(COLOR_WINDOW));
        FillRect(Drw->hDC,&Drw->rcItem, Br);    
      }else
      {
        SetTextColor(Drw->hDC,colorText);
        FillRect(Drw->hDC,&Drw->rcItem, Norm);  
      }
        if (res!=LB_ERR)DrawText(Drw->hDC,text,strlen(text),&Drw->rcItem,DT_LEFT);
        DeleteObject(Br);
        DeleteObject(Norm);
    }
        break;
Что то в этом духе.
max-@
0 / 0 / 0
Регистрация: 22.03.2011
Сообщений: 68
31.03.2011, 07:42  [ТС]     Разноцветный текст в ListBox #4
Ок спасибо, попозже разберусь........
max-@
0 / 0 / 0
Регистрация: 22.03.2011
Сообщений: 68
01.04.2011, 00:39  [ТС]     Разноцветный текст в ListBox #5
Отлично все прекрасно работает...........
Но у меня еще вопрос, как разукрасить в определенные цвета одни значения в листбоксе...........всего возможно два варианта раскраски.....можно ли определённой строке поставить дополнительный атрибут.....например 0 или 1.............
Kovalsky2
0 / 0 / 0
Регистрация: 05.08.2009
Сообщений: 96
01.04.2011, 04:48     Разноцветный текст в ListBox #6
А кто нам запретит.)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int Param;//Значение которое дудет хранить определённая строчка
int nItem=0;//Номер необходимой строки
Param=1;//Параметр (1 или 0)
SendMessage(hWndListBox, LB_SETITEMDATA, nItem, (LPARAM)(Param));
 
// или где у Вас добавляеться строчка
 
nItem=SendMessage(hWndListBox, LB_ADDSTRING, 0, (LPARAM)('String'));
SendMessage(hWndListBox, LB_SETITEMDATA, nItem, (LPARAM)(Param)); 
 
// далее в
 
case WM_DRAWITEM:
{
...........
 DWORD colorText=0;//Черный
 if (Drw->itemData) сolorText=RGB(255,0,0);//Красный
...........
}
В качестве Param можно передать адресс целой структуры(класса),в которой до бубна информации.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2011, 10:57     Разноцветный текст в ListBox
Еще ссылки по теме:

Как переопределить текст в исходнике (текст, как идентификатор)? - C++
Здравствуйте, товарищи кодеры. Помогите товарищу по оружию, дельным советом. Мне нужно заменить текст в исходнике. Как вариант #define...

Вывод массива в listBox - C++
for (i=1; i<=n; i++) { A = rand()%500; // запись случайного числа //Что сюда добавить??? } Что нужно добавить чтобы массив...

ListBox в windows forms - C++
Вопрос конечно глупый, но все же, как в с++ узнать индекс элемента? Перехожу с Delphi на с++ и не могу разобраться. Добавлено через 1...

Форма с элементом управления ListBox - C++
Необходимо написать программный код для решения следующей задачи: после запуска программы должна отображаться форма с элементом управления...

Как изменить цвет фона в ListBox'е? - C++
Можно как-нибудь изменить цвет фона в ListBox'е?


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

Или воспользуйтесь поиском по форуму:
max-@
0 / 0 / 0
Регистрация: 22.03.2011
Сообщений: 68
02.04.2011, 10:57  [ТС]     Разноцветный текст в ListBox #7
Спасибо все работает............
Yandex
Объявления
02.04.2011, 10:57     Разноцветный текст в ListBox
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru