но только надо создать свое событие OwnerDraw в котором будер это рисоваться. Вот только я не знаю как создать и правильно сделать. Поэтому и спрашиваю.
Вопрос собственно по subj.
Как мне сделать, чтобы при добавлении в него новой строки (SendMessage(hWndLog,LB_ADDSTRING,0,(LONG)Buf)) строка добавлялась другого цвета?
Это тебе не richtext там так нельзя22.05.02 02:37 Автор: Korsh <Мельников Михаил> Статус: Elderman
но только надо создать свое событие OwnerDraw в котором будер это рисоваться. Вот только я не знаю как создать и правильно сделать. Поэтому и спрашиваю.
> вот почитай: > WM_DRAWITEM > WM_MEASUREITEM > GetStockObject(DEFAULT_GUI_FONT) > DrawText() > GetSysColor(COLOR_WINDOW) > и т.п. > > а цвет строки сам задаёшь > например через LB_SETITEMDATA > а потом в WM_DRAWITEM оттуда берёшь
Спасибо. А можно по-конкретней.
Вот я создаю ListBox со свойством LBS_OWNERDRAWFIXED.
В родит. окне обрабатываю WM_MEASUREITEM (хотя не обязательно):
case WM_MEASUREITEM:
lpmis = (LPMEASUREITEMSTRUCT) lParam;
lpmis->itemHeight = 16;
Потом надо создать WM_DRAWITEM:
case WM_DRAWITEM:
lpdis = (LPDRAWITEMSTRUCT) lParam;
if(!lpdis->CtlType==ODT_LISTBOX) break;