关于CListCtrl自绘的有关问题

关于CListCtrl自绘的问题
我使用了一个CListCtrl自绘的控件,刚打开程序的时候,自绘是可以正常显示的
DrawItem函数是可以调试进入的,显示的是Report模式
但是,我DeleteAllItems();然后将列全部删除后,再添加新的列进来,然后添加数据
这时,数据无法显示了,调试没有进入到DrawItem函数中,也没有报错,看滚动条状态也正常
只是好像根本就不调用DrawItem自绘了,不知道是什么原因?
------最佳解决方案--------------------
你把每一列拉大一下 那一列数据就显示出来了,但是仍然有其他问题,比如点击那一列也不选中了,造成这样的问题就是你直接调用了m_HeaderCtrl的DeleteItem绕过了CListCtrl,读取属性什么的可以调用m_HeaderCtrl
但是你要增删改什么的要通过CListCtrl的成员函数,因为HeaderCtrl属于CListCtrl的一部分。
------其他解决方案--------------------
可以参考我做过的一个例子:
http://blog.csdn.net/hurryboylqs/article/details/5862046
------其他解决方案--------------------
hurryboylqs 
我用你的例子测试了一下,删除数据后,重新添加
显示的也不对
------其他解决方案--------------------
sorry,我少加了一句SetItemCount,多谢
------其他解决方案--------------------
查查style是不是变了。
------其他解决方案--------------------
hurryboylqs 给的例子是使用NM_CUSTOMDRAW消息自绘的,
我这个是使用LVS_OWNERDRAWFIXED,DrawItem方式自绘的,

style没有变,只是数据不能正常显示了,也就是DrawItem没有被调用,我想知道是什么原因
------其他解决方案--------------------
‘将列全部删除’ 列头 没删除吧 ?
------其他解决方案--------------------
mListX.DeleteAllItems();
CHeaderCtrl *pHeader = mListX.GetHeaderCtrl();
int xn = pHeader->GetItemCount();
for (int i = xn - 1; i >= 0; --i)
{
pHeader->DeleteItem(i);
}
是这样删除数据和列的,然后再添加数据就无法显示了
------其他解决方案--------------------
‘再添加数据’就要再加 列头 ,没有 列头 是 不能 显示的。
------其他解决方案--------------------
是的,当然添加了列头后,再添加数据的
------其他解决方案--------------------
列头,滚动条状态都显示正常,就是数据没有显示出来,网格线也正常,我GetItemCount()正常,返回的个数和添加的一致,我查看了添加的数据也没有发现异常,奇怪
------其他解决方案--------------------
我不喜欢用DrawItem,觉得在里面画的话不完整(完美),可以的话你把demo发我给你调调看:liqisong611@hotmail.com
------其他解决方案--------------------
为什么要把 列头 都删除? 列头可以通过 SetItem 来改的,多余的才 删除。

------其他解决方案--------------------
hurryboylqs 
已发送邮件,谢谢了
------其他解决方案--------------------
>>schlafenhamster:
不管怎样,这种现象都是不对的,既然控件提供了这个功能,不可能只是希望不被用到,而且有可能会引发其他错误出来
------其他解决方案--------------------
自绘控件有源码么?
可以回过去查调用。

是VCbase上面的那个么?
我是记得上面那个有严重的BUG,我自己修改了一下才OK。
不能及时切换色彩。。


------其他解决方案--------------------
再强制InvalidateRect一下呢?有效果没?
------其他解决方案--------------------
VisualEleven
在外部调用刷新没有效果,应该不是刷新的问题,好像哪里不对,以至于没有能够调用DrawItem函数
------其他解决方案--------------------
tiger9991
是的,vckbase上那个CListCtrlCl,颜色的大多没有用到,我去掉了,我只是简单的使用它显示数据
请问你改的是什么bug?不知和这个有没有关系
------其他解决方案--------------------
是刷新的问题
------其他解决方案--------------------
这个代码临时放置在这里
http://www.vdisk.cn/down/index/11386899#?