подстветить нужные item'ы в listbox
От: Timoha_Bravin Ниоткуда  
Дата: 19.02.14 16:11
Оценка:
Здравствуйте!
Имеется два listbox и соответственно два массива со значениями, согласно которым нужно подсвечивать определенные строки в listbox.
С самой поцветкой(выделением,highlight) разобрался: перегрузил DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct), pDC->FillRect(rcLabel, &CBrush(d0)), DrawText...
Ступор наступил, когда начал распределять highlight, читая массив. Предполагая, что DrawItem каждый раз вызывается сразу после вставки/работы со строками одного листбокса, я ввел переменную:
CurrentList=LIST_NUMBER_1;
list_1.InsertItem(0,(LPCSTR)(&buffer[0]));

и
CurrentList=LIST_NUMBER_2;
list_2.InsertItem(0,(LPCSTR)(&buffer[0]));

соответственно в DrawItem массив выбирается исходя из значений переменной.

но,
1) CurrentList всегда равен LIST_NUMBER_2
2) Такое ощущение(по точке останова), что функция DrawItem работает только для 2го listbox
3) lpDrawItemStruct меняются только ItemId, hDC, rcItem.

Подскажите, как нормально организовать highlight. Лучше без правки DrawItem-после построения всего списка, в родительском классе красиво вызвать в оформленной функции по типу(SetSel):
list_2.SetHighlight(int ItemID);
еще раз повторяю-важна привязка подцветки по массивам, а не абы как.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.