读书人

listctrl 响应NM_CUSTOMDRAW闪烁有关问

发布时间: 2012-09-04 14:19:30 作者: rapoo

listctrl 响应NM_CUSTOMDRAW闪烁问题
我现在绘制单个item有可能比较耗时,那么显示list就会出现一个一个画出来的情况,
有没有什么办法让所有item全部画出来,才一起显示。

现在的思路是在CDDS_PREPAINT锁屏,等所有item绘制完毕,然后在CDDS_POSTPAINT实现更新到屏幕
但是我对mfc不熟悉,不知道怎么做,怎么锁屏,怎么解锁,而且CDDS_POSTPAINT我发现也没有这个消息

请各位指点下,各位可以通过下面代码模拟我遇到的问题
if(pNMCD->drDrawStage == CDDS_ITEMPREPAINT)
{
DrawItem...
sleep(1000) //模拟画item耗时
}

我希望所有item全部画出来,才一起显示,不要画一个显示一个,该如何去做。

[解决办法]
查一下双缓存
[解决办法]
楼主思路很正确,很有天赋啊

读书人网 >VC/MFC

热点推荐