CustomDrawItem в TListView
От: __Dimentiy Россия  
Дата: 28.08.03 10:10
Оценка:
Здравствуй All!

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

Да, ещё, таким вот макаром переопределена оконная процедура (надо было ловить
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);
}

Удачи!
Re: CustomDrawItem в TListView
От: Alex Black Украина http://www.adept7.kiev.ua
Дата: 29.08.03 11:39
Оценка:
Здравствуйте, __Dimentiy, Вы писали:

__D>Да, ещё, таким вот макаром переопределена оконная процедура (надо было ловить

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

Окно MDI?
Радость от нахождения ошибки часто омрачаеться осознанием собственой глупости.
Re: CustomDrawItem в TListView
От: Denis_TST Россия www.transsys.ru
Дата: 29.08.03 17:55
Оценка:
Здравствуйте, __Dimentiy, Вы писали:

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


__D>Народ, такая штука:

__D>Есть класс наследник subj`a, в нём переопределяются все процедуры CustomDrawXXX. И не одна из них
если нужен CustomDraw то лучше пользоваться
VirtualTreeview
... << RSDN@Home 1.1 alpha 1 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.