我用ListCtrl时遇到了一个对我来说比较难处理的显示问题

rogear 2001-10-24 09:19:15
我在一个消息来时处理函数需要显示好几次结果,但每次都是所有的显示结果一起显示而不是分布显示,比如我程序中有这样的语句:

ShowMsg("锄禾日当午");
Sleep(2000);
ShowMsg("汗滴禾下土");

//ShowMsg是我写的在ListCtrl中插入一行显示数据的函数

显示的时候总是等两秒后一起显示"锄禾日当午"和"汗滴禾下土"两句话而不是先显示"锄禾日当午"然后等两秒钟后再显示"汗滴禾下土",我怎么样实现让它分步显示的效果呢?我知道在ShowMsg函数结束前发送一个刷新页面的消息可以实现,但我试了一天还是没有成功,现在我都不知道到底怎样发送,发送哪个消息,发送给谁了,有哪位高手能拉我一把啊?我都要死掉了!
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsd198 2001-10-24
  • 打赏
  • 举报
回复
哈哈!你不知道先删除前面的内容吗?它是显示一个队列的内容,你不删除当然它还会显示了:)
kingzai 2001-10-24
  • 打赏
  • 举报
回复
Update一下吧,pViewReport->Update(item);
rogear 2001-10-24
  • 打赏
  • 举报
回复
我曾在最后加上过SetRedraw(),但还是不管用啊
chenzhou35 2001-10-24
  • 打赏
  • 举报
回复
SetRedraw()
rogear 2001-10-24
  • 打赏
  • 举报
回复
我的ShowMsg其实是个宏,定义为
#define ShowMsg(x) pViewReport->Add_Report("System",x)
//pViewReport是指向我所用的ListCtrl控件的全局指针

void CMyView::Add_Report(CString sr, CString data)
{
CTime tim;
time_t ltime;
struct tm *today;
char date_time[20];
int ItemCount;
LV_ITEM lvi;

time( <ime ); //Gets the system time

//Converts time value and corrects for the local time zone
today = localtime( <ime );

//Format a time string
strftime( date_time, 20, "%Y-%m-%d %H:%M:%S", today );

//////////////////////////////////////////////////////////////
ItemCount = pViewReport->GetItemCount();
if (ItemCount>1000)
{
pViewReport->DeleteItem(0);
ItemCount = 0;
} //最多显示1000行,超过刷新

lvi.mask = LVIF_TEXT|LVIF_IMAGE;
lvi.iSubItem=0;
lvi.iItem = ItemCount;
lvi.pszText = (LPTSTR)date_time;//date_time; 信息产生时间
lvi.lParam=ItemCount;
lvi.iSubItem = 0;

pViewReport->InsertItem(&lvi); // 插入一项
pViewReport->SetItemText(ItemCount, 1, sr); // 1.主体
pViewReport->SetItemText(ItemCount, 2, data); // 2.消息
pViewReport->EnsureVisible(ItemCount, FALSE); // 5.使新插入的项有效
}
waterpig 2001-10-24
  • 打赏
  • 举报
回复
用一个定时器
cccvvvttt 2001-10-24
  • 打赏
  • 举报
回复
贴出你的ShowMsg可以吗

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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