C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Переопределение CustomDrawItem в наследнике TListV
__Dimentiy
Отправлено: 28.08.2003, 15:06


Не зарегистрирован







Здравствуй All!

Народ, такая штука:
Есть класс наследник subj`a, в нём переопределяются все процедуры CustomDrawXXX. И не одна из них
не вызывается. Подскажите плз, в чём могет быть дело. Почему эти
процедуры могут не вызываться. Тут же переопределена
MouseUp(...) с ней всё в порядке...

Да, ещё, таким вот макаром переопределена оконная процедура (надо было ловить
SelectItem, а в базовом классе нет виртуальной функции).

Может быть, конечно, что-то здесь не так, должно, же доходить до TListView NM_CUSTOMDRAW, и ведь доходит, т.к.
он перерисовывается, а почему тогда не вызываются эти хреновы обработчики не ясно. Памагите плз.

void __fastcall TListViewEx::WndProc(Messages::TMessage &Message)
{
if (Message.Msg == CN_NOTIFY)
{
LPNMHDR lpNMHDR = (LPNMHDR) Message.LParam;
if (lpNMHDR)
if (lpNMHDR->code == LVN_ITEMCHANGED)
{
LPNMLISTVIEW lpNMLV = (LPNMLISTVIEW) Message.LParam;
if (lpNMLV->uChanged == LVIF_STATE)
if ((lpNMLV->uOldState && LVIS_SELECTED) && ((lpNMLV->uNewState && LVIS_SELECTED) == 0))
SetSelectedSubItemIndex(FSelectedSubItemIndex);
else if (((lpNMLV->uOldState && LVIS_SELECTED) == 0) && (lpNMLV->uNewState && LVIS_SELECTED))
SetSelectedSubItemIndex(FSelectedSubItemIndex);
}
}

TListView::WndProc(Message);
}

Удачи! Заранее спасибо!

Вернуться в Вопросы программирования в C++Builder