Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разобраться с ошибкой 74 possible usage of str_cat before definition http://www.cyberforum.ru/cpp-beginners/thread493921.html
Пищу так: #include<string.h> ................. char *str_cat; for(int i=0; i<argc; i+=2){ strcpy(str_cat,argv); strcat(str_cat,argv);//Выдаёт Warning |74 possible usage of str_cat before...
C++ Помогите с TVM_DELETEITEM Надо удалить выделенную ветвь из дерева. Я написал следующий код: HTREEITEM hSelItem=(HTREEITEM)SendMessage(TVM_GETNEXTITEM,(WPARAM)(UINT)TVGN_CARET,NULL); HTREEITEM... http://www.cyberforum.ru/cpp-beginners/thread493918.html
Отлов сообщения у ЛистБокса C++
Короче надо отловить нажатие клавишь я делаю так hWnd = CreateWindow(szWindowClass, szTitle, WS_POPUP | WS_BORDER, Left, Top, Width, Height, NULL, NULL, hInstance, NULL); hListBox =...
Требуется связаться с ОРС сервером посредством сustom интерфейса C++
Дорогие господа специалисты. Помогите пожалуйста связаться с ОРС сервером посредством сustom интерфейса. Где то я вычитал, что сначала нужно создать объект посредством функции CoCreateInstance и...
C++ вышлите мне dxguid.lib пожалуйста для borland-да с++5.5 http://www.cyberforum.ru/cpp-beginners/thread493807.html
вышлите мне dxguid.lib пожалуйста
C++ вышлите мне dxguid.lib пожалуйста вышлите мне dxguid.lib пожалуйста подробнее

Показать сообщение отдельно
Kovalsky2
0 / 0 / 0
Регистрация: 05.08.2009
Сообщений: 96
30.03.2011, 23:08
В стиле окошка 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;
Что то в этом духе.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru