一个CListCtrl控件,会不定时更新数据,可能一两分钟也不更新,也可能100毫秒就要更新一次,类似报警效果!
我现在开的是用一个多线程实时100毫秒更新一次.现在有一个问题就是更新数据时的闪烁效果在严重,我在更新数据的代码的前后加上了
mainlist->SetreDraw(false);
....................
mainlist->setreDraw(true);
mainlist->Invalidate();可是还是有严重的闪烁效果.要怎么样能把这个闪烁去掉呢?谢谢!
我现在开的是用一个多线程实时100毫秒更新一次.现在有一个问题就是更新数据时的闪烁效果在严重,我在更新数据的代码的前后加上了
mainlist->SetreDraw(false);
....................
mainlist->setreDraw(true);
mainlist->Invalidate();可是还是有严重的闪烁效果.要怎么样能把这个闪烁去掉呢?谢谢!
解决方案 »
- 怎么设置popup menu的菜单项图标尺寸?我的图标是16*16的,但是SetMenuItemBitmaps之后没有完全显示
- 关于CreateBitmapIndirect产生HBITMAP类型的问题
- WaitableTimer问题
- 判断端口数据接收问题
- 怎么将变量赋值给SQL语句
- 各位高手:如何获得操作串口的基本类库
- 各位大侠,请指路
- 请问大家,如何隐藏MFC CHtmlView中的IE ReBar呢?谢谢~~~
- [转帖] WGI 1.0.2版发布了,下载源代码
- vc++ AfxExtractSubString分割字符串
- VC8怎样设置工程的环境变量?
- 高分求救,如何读写高端物理内存?例如F00000000
再次引起刷新,所以会严重闪烁
// flicker. In such cases it may be better to turn off drawing//... //m_list is a member of type CListCtrl
m_List.SetRedraw(FALSE); // turn drawing off regardless of list mode//...
// Update control
//... m_List.SetRedraw(TRUE); // turn drawing back on and update the window // invalidate the entire control, force painting
m_List.Invalidate();
m_List.UpdateWindow();
优化你的更新算法,尽量通过SetItemText或SetItemData来改变Item的内容另外你也可以考虑使用虚表,不过大量更新时也会有闪烁的。