所以我从 CListbox 派生了我的列表框,将资源样式设置为就像我得到的演示项目一样(HASSTRINGS,OWNERDRAW - VARIABLE,NO SORT)。
列表框填充,绘制确定,TRACE 语句给我每个正在绘制的项目的指针值。
直到我滚动。
在我滚动可见列表底部的项目之前,跟踪为(20 是 lpDrawItemStruct->itemID)
MyClass::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) ...
20 - 0x036f3d90 {m_Event={ 大小=658 } m_ListName= ...
滚动后我处理的第一个 DrawItem 事件
20 - 0x0127d248 {m_Event={ size=1073736252 } m_ListName= m_ImageName=...} - 评估因发生未处理的异常而中止。
为什么指针不一样?
它不需要滚动来重现这个问题,选择也可以。
那里有任何明亮的火花可以告诉我要寻找什么吗?