Автор
|
Тема: ClistBox с OWNERDRAW ошибка при GetCurSel()
|
MADbI4 |
опубликован 04-05-2001 14:38 MSK
Вобщем трабла такая, есть список CListBox с установленым стилем OWNERDRAW тоесть за рисование элементов отвечает програмист. Все сделано как положено, переопределен производный класс ,в нем функции: DrawItem, CompareItem, MeasureItem. Все работало и рисовало как надо пока не начал работать с данными списка, при вызове функции GetCurSel в обработчике LBN_SELCHANGE вылетает ASSERT из MFCшных сырцов и говорит что HWND == NULL _AFXWIN_INLINE int CListBox::GetCurSel()const { ASSERT(::IsWindow(m_hWnd)); ... -----------------------^=0xCCCCCCCC Проверил значение m_hWnd в функ обработке OnSelChange m_hWnd указывает что с окном все ок. Может кто сталкивался, с этим помогите, и сорри за длиное описание.
|
OlegN
|
опубликован 04-05-2001 14:59 MSK
Длинное описание, это хорошо, чаще бывает наоборот. Если обработке OnSelChange m_hWnd истинный, то попробуй вызвать функцию API напрямую : вместо int CurSel = GetCurSel() вызови int CurSel = ::SendMessage(m_hWnd, LB_GETCURSEL, 0, 0); Проверь не меняется ли this внутри функции GetCurSel(). Если да, то где-то чего-то ты не туда пишешь и понятно почему m_hWnd равно 0. |