各位大侠,关于MFC CListCtrl

求助各位大侠,关于MFC CListCtrl
最近我在实习,用到了CListCtrl。现在想求助各位大神:
我已经重载了一个类,先将其叫做CMyList。
DrawItem函数已经实现,数据量并不大(170+)x(13),但是会出现闪屏。各位能不能根据经验给点指导;
另外,我的CMyList需要用到OnMouseWheel,主要是为了将内容滚动,我每一个Item的height为30,调用Scroll会出现行的闪烁,初步判断是内容滚动到两行之间时有视觉残留。
CSize sz;
sz.x=0;
sz.y=30;
Scroll(sz);
后来我换了换思路,使用ScrollWindow进行滚动,但是可能参数设置不当,会出现内容滚动后出现重复行;更严重的问题是切换界面后item的位置是没动的。
我现在完全没思路了,求各位大神给点指点。或者贴一小段示例代码也行。
------解决方案--------------------
闪屏--填写完数据后再刷新界面

------解决方案--------------------
可以自绘,避免刷新时闪烁。2000多条数据,也不少。简单SetRedraw(FALSE)来控制的话,估计也会有闪烁效果。网上有现成的,响应CListCtrl派生类的OnPaint,其中用双缓存绘图,调用    DefWindowProc(WM_PAINT,(WPARAM)MemDC.m_hDC,(LPARAM)0);后就可以BitBlt贴回去了。
------解决方案--------------------
其它方法:
避免先DeleteAllItem,再逐个插入,肯定闪烁。
如果数据量会保持比较稳定,可以不清除原来的,用SetItemText替换每行数据,多余的行删除,不足的行插入。
变化前,先SetRedraw(FALSE);完成后,SetRedraw(TRUE);
------解决方案--------------------
引用:
调用onPaint之后就不再需要DrawItem了对吧?各位大侠,关于MFC CListCtrl


对的。


引用:
调用这个函数是在哪进行的?DefWindowProc(WM_PAINT,(WPARAM)MemDC.m_hDC,(LPARAM)0);类的初始化么?


在OnPaint中。 
www.codeproject.com上有现成的例子。