在用listctrl控件中,如果数据量很大,就会造成机器很慢或死机,有没有别的办法解决 ?

yuanl 2007-03-23 10:39:41
在用listctrl控件中,如果数据量很大,就会造成机器很慢或死机,有没有别的办法解决 ?
...全文
471 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
albertdiao 2010-11-23
  • 打赏
  • 举报
回复
yuanl 2007-03-23
  • 打赏
  • 举报
回复
一个月就有8000条数据量,
这是一个收费数据
dazedase 2007-03-23
  • 打赏
  • 举报
回复
Ado1000条以内速度不慢啊
难道有10000条?
也可在listctrl的OnGetdispinfo中来获取数据(可能需要派生一个CYourlistctrl)
这样只有看得到的Item才从库中取数据,不用循环,速度快
但是很麻烦,易出错
yuanl 2007-03-23
  • 打赏
  • 举报
回复
这种办法试了,不行
不知是不是处理上有问题:
_variant_t var;
CString str1,str2,str3,bl,strbz,gshbl;
gsl = 0;
je = 0.0;
ClearList();// 清空列表框
FillSRecordlist();
str1=str2=str3="";
int i=0,inths=0,fhhs=0;
bbrow = 0;
try
{
//刷新一下数据表内
if(!theApp.m_pRecordset->BOF)
theApp.m_pRecordset->MoveFirst();
m_list.SetRedraw(FALSE);
while(!theApp.m_pRecordset->adoEOF)
{
bl.Format("记录%d",i+1);
m_list.InsertItem(i,bl);
var = theApp.m_pRecordset->GetCollect("id号"); if(var.vt != VT_NULL)
str1 = (LPCSTR)_bstr_t(var);
if( str1 != gshbl)
{
inths++;
gshbl = str1;
if(str1.Right(1) =='B')
fhhs++;
}
m_list.SetItemText(i,1,str1);
var = theApp.m_pRecordset->GetCollect("用户名称");
if(var.vt != VT_NULL)
str1 = (LPCSTR)_bstr_t(var);
m_list.SetItemText(i,2,str1);
var = theApp.m_pRecordset->GetCollect("售量");
if(var.vt != VT_NULL)
{
str2 = (LPCSTR)_bstr_t(var);
gsl += atoi(str2);
}
m_list.SetItemText(i,3,str2);
var = theApp.m_pRecordset->GetCollect("性质");
if(var.vt != VT_NULL)
str1 = (LPCSTR)_bstr_t(var);
m_list.SetItemText(i,4,str1);
if(FillDjwithRecrd(str1))
m_list.SetItemText(i,5,str);
var = theApp.m_pRecordset->GetCollect("金额");
if(var.vt != VT_NULL)
{
str1 = (LPCSTR)_bstr_t(var);
if(m_int3 == 0 )
{
if(atof(str1) == 0.0)
{
str3.Format("%.2f",atoi(str2)*atof(str));
strbz = str3;
strbz += "未";
}
else
{
str3 = (LPCSTR)_bstr_t(var);
strbz = str3;
}
}
if(m_int3 == 2 )
{
str3.Format("%.2f",atoi(str2)*atof(str));
strbz = str3;
strbz += "未";
}
if(m_int3 == 1 || m_int3==4)
{
str3 = (LPCSTR)_bstr_t(var);
strbz = str3;
}
je += atof(str3);
}
m_list.SetItemText(i,6,strbz);
i++;
theApp.m_pRecordset->MoveNext();
}
// 默认列表指向第一项,同时移动记录指针并显示
bl.Format("%s","合计:");
m_list.InsertItem(i,bl);
str3.Format("%d次",i);
bbrow = i;
m_list.SetItemText(i,1,str3);
str3.Format("%d户(%d分户)",inths,fhhs);
m_list.SetItemText(i,2,str3);
str3.Format("%d",gsl);
m_list.SetItemText(i,3,str3);
str3.Format("%.2f",je);
m_list.SetItemText(i,6,str3);
m_list.SetItemCount(0);
m_list.SetRedraw(TRUE);
m_list.Invalidate();
m_list.UpdateWindow();
if(i == 0)
m_btn2.EnableWindow(FALSE);
else
m_btn2.EnableWindow(TRUE);
SetRedraw(TRUE);
}
catch(_com_error *e)
{
MessageBox(e->ErrorMessage(),"提示",MB_ICONINFORMATION|MB_OK);
}
dazedase 2007-03-23
  • 打赏
  • 举报
回复
m_List.SetRedraw(FALSE);//<--!!提高响应速度

插入数据....

m_List.SetRedraw(TRUE);//<--!!恢复
jinxuliang 2007-03-23
  • 打赏
  • 举报
回复
使用虚拟表
不就快了
codeproject有文章
raymonzhao 2007-03-23
  • 打赏
  • 举报
回复
先将数据取出放在一个variant中,再用虚模式,设置值.应该没问题.
内容概要:本文档为《PCI Express CEM Specification, Revision 5.0, Version 1.0》的技术勘误表(Errata),发布于2021年8月3日,共包含21项修订记录。主要针对原规范的文本错误(TXT)、术语使用不当或格式问题进行修正,涉及信号定义、材料要求、尺寸参数、表格引用、注释说明等多个技术细节。部分修改明确了关键信号如SENSE0/SENSE1的使用条件,调整了连接器测试夹具推荐做法,并统一了术语表述以避免歧义。所有修订均经过CEM工作组讨论确认,其多数已被采纳(绿色标记),个别仍需进一步讨论(橙色标记)。; 适合人群:从事PCIe接口设计、高速电路开发、硬件合规性测试的工程师及相关技术人员;熟悉PCIe标准并参与硬件产品开发的1-3年经验研发人员。; 使用场景及目标:①帮助开发者准确理解PCIe CEM规范关于高功率连接器、边带信号、PCB布局等关键技术要求;②指导硬件设计与测试过程规避因文档歧义导致的实现错误;③确保产品符合最新规范版本的电气与机械设计标准; 阅读建议:此资源为规范性文件的补充修正,建议结合原始CEM Specification文档对照阅读,重点关注标红、标绿和标橙的反馈状态,及时更新设计依据,并在实际项目验证相关修改项的应用一致性。
内容概要:本文是一份针对全国计算机等级考试(NCRE)二级的全面备考指南,覆盖MS Office高级应用与设计、C语言程序设计和Python语言程序设计三大主流科目。文档按照“认知→题库→实战→冲刺”四步递进结构组织,系统介绍了考试基本信息、报名时间、考试形式、合格标准及科目选择建议,并深入剖析各科高频考点、真题规律与操作技巧。重点内容包括MS Office的Word长文档排版、Excel函数应用与PPT动画设计;C语言的指针、数组、函数及程序调试;Python的基础语法、标准库(如turtle、random)与第三方库(如jieba、wordcloud、matplotlib)的应用。此外,还提供公共基础知识精讲、操作题逐步教学、易错题集锦、模拟软件使用指南和科学的时间管理策略,帮助考生高效备考。; 适合人群:零基础小白、临考突击型考生以及多次未通过的考生,尤其适合非计算机专业希望提升办公技能或理工科学生准备编程语言认证的学习者。; 使用场景及目标:①系统掌握NCRE二级考试所需的知识与实操技能;②通过刷真题、模拟考试和错题复盘提高应试能力;③在短时间内实现从入门到通关的跨越,一次性通过考试。; 阅读建议:建议按文档顺序逐步学习,结合官方考纲和真题进行实践操作,重视动手练习而非仅理论阅读,临考前使用模拟软件全真演练,强化时间分配与答题策略。

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧