Здравствуйте KaSA, Вы писали:
KSA>Дык, вот, в DrawItem попасть не удается...почему? Где тут ошибка?
Ошибка в том, что WM_DRAWITEM посылается
родительскому окну, а не самому контролу.
То есть сабкалссинг здесь, в общем случае, неприменим.
KSA>Помогите, кто знает!
Теперь о том кк выйти из этой ситуации.
Способ 1: Обрабатывать WM_DRAWITEM в родительском окне.
Это очень удобно если контрол "одноразовый" (т.е. такой который для непригоден
повторного использования).
Способ 2: Сделать вот так (хорошо для "реюзабельных" котролов):
//в родительском окне...
BEGIN_MSG_MAP_EX(CLogviewDlg)
...
MSG_WM_TIMER(OnTimer)
REFLECT_NOTIFICATIONS() //это пнет WM_DRAWITEM обратно в контрол
END_MSG_MAP()
//в контроле...
BEGIN_MSG_MAP_EX(CColorListBox)
MESSAGE_HANDLER(OCM_DRAWITEM, OnDrawItem) //заметь что код сообщения начинается на OCM_
END_MSG_MAP()