社区
界面
帖子详情
在用listctrl控件中,如果数据量很大,就会造成机器很慢或死机,有没有别的办法解决 ?
yuanl
2007-03-23 10:39:41
在用listctrl控件中,如果数据量很大,就会造成机器很慢或死机,有没有别的办法解决 ?
...全文
462
7
打赏
收藏
在用listctrl控件中,如果数据量很大,就会造成机器很慢或死机,有没有别的办法解决 ?
在用listctrl控件中,如果数据量很大,就会造成机器很慢或死机,有没有别的办法解决 ?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
albertdiao
2010-11-23
打赏
举报
回复
虚模式
http://blog.sina.com.cn/s/blog_49c93b880100iw2k.html
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中,再用虚模式,设置值.应该没问题.
listctrl
控件
的显示问题
m_List.SetRedraw(FALSE);//插入数据....m_List.SetRedraw(TRUE);//这样可以避免当
数据量
过大时,
listctrl
在显示上出现
死机
现象
C# WinForm常用
控件
使用实战例程
Windows Forms 是 .NET Framework 提供的 GUI 类库,允许开发者通过拖拽式设计器快速构建桌面应用程序。其核心在于“
控件
即对象”的设计思想,每个按钮、文本框都是可编程的组件,封装了外观、行为和事件。尽管LinkLabel默认呈现蓝色下划线风格,但其外观完全可以根据品牌设计或用户偏好进行深度定制。通过设置LinkColor等属性,可实现不同状态下的色彩反馈;同时结合Font属性,还能调整字号、粗细甚至字体族。// 主链接色:道奇蓝// 已访问色。
兼容全版本浏览器的Web打印
控件
设计方案与实战
为了确保不同客户端(PC 端浏览器、移动端 App、第三方系统集成)能够以统一方式发起打印任务,必须对打印请求进行规范化建模。一个健壮的打印 API 应具备良好的语义清晰度、参数完整性及可扩展能力。HTTP 状态码场景用户提示文案参数缺失或格式错误“打印参数不完整,请检查输入项。JWT 过期或无效“登录已失效,请重新登录后尝试。用户无打印权限“您没有权限执行此打印操作。模板 ID 不存在“未找到指定打印模板,请联系管理员。
金蝶苍穹应用开发
中
级考试题库汇总
jvm参数
中
Xms 1024m的意思是 (D)A.JVM堆最大内存设置的1024MB.JVM年轻代内存大小设置的1024MC.JVM每个线程的堆栈大小是1024MD.JVM堆初始内存设置的1024M苍穹的插件
中
关于
控件
注册监听的接近于哪种设计模式思想 (A或D)A.策略模式B.观察者模式C.代理模式D.工厂模式在列表运行态界面,有需求要设置默认过滤条件,并在界面上进行展示,可在哪个事件
中
是正确的(B或C)A.afterCreateNewData(EventObject)B.filterColumnSetFi
VC6.0的若干实用小技巧
作者:VC教程 来源:http://www.d9soft.com 时间:2006-2-11 1:30:501.检测程序
中
的括号是否匹配把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还
会
发出一声警告声。2.查看一个宏(或变量、函数)的宏定义把光标移动到你想知道的一个宏上,就比如
界面
15,977
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章