Re: ComboBox
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 07.04.04 11:30
Оценка:
Здравствуйте, ArcD, Вы писали:

AD>Подскажите пожалуйста, что я неправильно делаю? Или чего не делаю?


AD>Пробовал написать ComboBox со строками разного цвета. Вроде получилость, но строки в выпадающем окне рисуются как надо, а вот выбранный итем в окошке не отображается. То есть там вообще ничего не рисуется. Очевидно я что-то упустил... Вот мой код.


AD>
AD>        case WM_DRAWITEM:
AD>        {
AD>            DWORD    RetCode;
AD>            LPDRAWITEMSTRUCT    lpdis = (LPDRAWITEMSTRUCT) lParam;
AD>            //Проверяем комбобокс ли это и нужный ли он?
AD>            if(!lpdis->CtlType==ODT_COMBOBOX) 
AD>                break;
AD>            if(!lpdis->CtlID==IDC_TEXTURE) 
AD>                break;
AD>            RetCode=0;
AD>            COLORREF    MyColor;
AD>            //Номер отрисовываемого итема
AD>            switch (lpdis->itemID)
AD>            {
AD>                case    0:
AD>                    MyColor=RGB(128,0,0);
AD>                    break;
AD>                case    1:
AD>                    MyColor=RGB(0,128,0);
AD>                    break;
AD>                case    2:
AD>                    MyColor=RGB(0,0,128);
AD>                    break;
AD>                default:
AD>                    MyColor=RGB(128,128,128);
AD>                    break;
AD>            }
AD>            //Задаем цвет текста
AD>            SetTextColor(lpdis->hDC,MyColor);
AD>            //Рисуем текст
AD>            RetCode=DrawText(lpdis->hDC,pszCombo4[lpdis->itemID],lstrlen(pszCombo4[lpdis->itemID]),&lpdis->rcItem,DT_LEFT);
AD>            break;
AD>        }
AD>


А где анализ itemState?

ODS_COMBOBOXEDIT
The drawing takes place in the selection field (edit control) of an owner-drawn combo box.

- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.