如何让写入的文字信息迅速显示呢?谢谢我正在开发一个服务器类型的程序,其中有些部分是非常消耗时间的,比如初始化硬件。
所以,我想把程序现在做什么的信息显示在主窗口的ListBox上。--------------------------------------------------------
void CTestView::InitCard()
{
//m_list是ListBox控件 m_list.AddString("正在初始化卡...");
InitTheCard();//这个函数非常耗时,比如假设是三秒吧。
m_list.AddString("完成初始化。");
}
--------------------------------------------------------我发现程序比并不是先显示"正在初始化卡...",等过了InitTheCard()之后才显示"完成初始化。"。
而是:开始什么也不显示,等完成InitTheCard()之后,突然一起显示出"正在初始化卡..."和"完成初始化。"。我希望在写出状态信息好,可以从listbox马上看到内容,这样才有意义。
该如何做呢?谢谢
所以,我想把程序现在做什么的信息显示在主窗口的ListBox上。--------------------------------------------------------
void CTestView::InitCard()
{
//m_list是ListBox控件 m_list.AddString("正在初始化卡...");
InitTheCard();//这个函数非常耗时,比如假设是三秒吧。
m_list.AddString("完成初始化。");
}
--------------------------------------------------------我发现程序比并不是先显示"正在初始化卡...",等过了InitTheCard()之后才显示"完成初始化。"。
而是:开始什么也不显示,等完成InitTheCard()之后,突然一起显示出"正在初始化卡..."和"完成初始化。"。我希望在写出状态信息好,可以从listbox马上看到内容,这样才有意义。
该如何做呢?谢谢
解决方案 »
- vc++ 文件操作的问题
- ADO老问题 求救兄弟们 大家帮帮忙 急
- 鼠标按下后一直设置点的颜色.
- 用c语言编写守护进程问题
- UNICODE 编码问题。
- InstallShield发布求救(100分)
- :请问:怎样在VC++60中调用一个存储过程(一个输入参数,三个输出参数)并得到输出参数?请用 MFC ODBC 语句
- 请问 ON_CONTROLRANGE( EN_KILLFOCUS...) 在 Release 版处理这个消息会非法操作!!
- 求助Advise挂接提示E_UNEXPECTED
- 在VC中怎么知道操作系统的目录?从注册表的那里得到本机的IP地址和计算机名最好。
- 请问这样功能怎么实现?(是关于256色灰度文件黑白对比度的)
- 如何实现菜单的变灰?
快速显示的。就像下面的函数一样,可以马上显示start...,完成load_a_very_big_thing() 以后,就显示"finish load"。
而不是最后突然一起显示出:“start”和“finish”
---------------------------------------------
printf("start ...");
load_a_very_big_thing() //非常耗时的函数
printf("finish ");
---------------------------------------------
{
//m_list是ListBox控件
m_list.AddString("正在初始化卡...");
/////////////////
m_list.UpdateWindow();
////////////////
InitTheCard();//这个函数非常耗时,比如假设是三秒吧。
m_list.AddString("完成初始化。");
}
Information display(UI thread).
When any message in hardware initializing thread needs posted to the User,just
Post a messge(Asynchronous Message) to the UI thread.UpdateWindow as whwjn(菜鸟学飞)
or
iamknight(侠客) ( )
sometimes don't work. The message won't dispay sometimes but sometimes they do display,but
this case is not what we want,huh :)
作了一下测试好象ReDrawWindow/UpdateWindow都可以啊。谢谢不过会不会有zhujianping_es(DavidRipple)说的有的时候可以有的时候不可以呢?
要知道对于一个服务器程序来说,漏了一条信息也是很不应该的。再次感谢。
int nLength = m_edit.SendMessage(WM_GETTEXTLENGTH);
m_edit.SetSel(nLength, nLength);
m_edit.ReplaceSel("abc");