clistctrl数据更新

clistctrl数据更新

ID:15387416

大小:28.50 KB

页数:5页

时间:2018-08-03

clistctrl数据更新_第1页
clistctrl数据更新_第2页
clistctrl数据更新_第3页
clistctrl数据更新_第4页
clistctrl数据更新_第5页
资源描述:

《clistctrl数据更新》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、关于CListCtrl控件更新Item的闪烁问题和一次插入大容量数据的显示问题解决办法(转)(2011-10-2322:08:48)转载▼标签:杂谈分类:C学习1.使用SetRedraw禁止窗口重绘,操作完成后,再恢复窗口重绘m_ctlList.SetRedraw(FALSE);//以下为更新数据操作//……//恢复窗口重绘m_ctlList.SetRedraw(TRUE);2.使用LockWindowUpdate禁止窗口重绘,操作完成后,用UnlockWindowUpdate恢复窗口重绘m_ctlList.LockWindowUpdate();//以下为更新数据操作//……//恢复

2、窗口重绘m_ctlList.UnlockWindowUpdate();3.使用ListCtrl的内部双缓冲m_ctlLisit.SetExtendedStyle(m_ctlLisit.GetExtendedStyle()

3、LVS_EX_DOUBLEBUFFER);VC6未定义LVS_EX_DOUBLEBUFFER宏,使用者可以自定义,如下:#defineLVS_EX_DOUBLEBUFFER0×000100004.VirtualList首先要设置ListCtrl风格为LVS_REPORT

4、LVS_OWNERDATA或在ListCtrl属里中的MoreStyles页面中选中Ownerd

5、ata复选框。其次要向应LVN_GETDISPINFO消息;voidOnGetdispinfoList(NMHDR*pNMHDR,LRESULT*pResult){LV_DISPINFO*pDispInfo=(LV_DISPINFO*)pNMHDR;LV_ITEM*pItem=&(pDispInfo)->item;charszText[128]={0};if(pItem->mask&LVIF_TEXT){//使缓冲区数据与表格子项对应//m_ArrayBuff为二维数组//定义如下intm_ArrayBuff[2048][4];_stprintf(szText,_T(“%d”),m_

6、ArrayBuff[pItem->iItem][pItem->iSubItem]);pItem->pszText=szText;}*pResult=0;}最后便是生成缓冲区数据voidInsertdata(){//删除之前的数据m_ctlList.SetItemCountEx(0);m_ctlList.Invalidate();m_ctlList.UpdateWindow();srand((unsigned)time(NULL));//生成新的数据缓冲区intnItemCount=2048;for(inti=0;i

7、){m_ArrayBuff[i][k]=rand()48+1;}}if(nItemCount<2)m_ctlList.SetItemCountEx(1);elsem_ctlList.SetItemCountEx(nItemCount);m_ctlList.Invalidate();}若要修改数据,只要修改缓冲区m_ArrayBuff的数据即可以5.CustomRedraw参考适用范围:数据不是很多,而且用SetItemText修改Item的某一列的数据的时候。既然是自绘,首先当然是重载CListCtrl类,并接管WM_ERASEBKGND消息,去掉默认的处理,改为不处理BOOLCLi

8、stCtrlEx::OnEraseBkgnd(CDC*pDC){//响应WM_ERASEBKGND消息returnfalse;//屏蔽默认处理//returnCListCtrl::OnEraseBkgnd(pDC);}voidCListCtrlEx::OnPaint(){//响应WM_PAINT消息CPaintDCdc(this);//devicecontextforpaintingCRectrect;CRectheaderRect;CDCMenDC;//内存ID表CBitmapMemMap;GetClientRect(&rect);GetDlgItem(0)->GetWindowR

9、ect(&headerRect);MenDC.CreateCompatibleDC(&dc);MemMap.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height());MenDC.SelectObject(&MemMap);MenDC.FillSolidRect(&rect,RGB(255,255,255));//这里的RGB(255,255,255)是ListCtrl的背景色//这一句是调用默认的OnPa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。