循环过程中视图刷新不了——追加50分!

我想做一个循环捕捉图片并显示的单文档程序。得到的图片用OnDraw来显示,拖动窗口,希望显示依然正确。程序大致是这样的:voidMyDoc::Test(){//dosom... 我想做一个循环捕捉图片并显示的单文档程序。得到的图片用OnDraw来显示,拖动窗口,希望显示依然正确。
程序大致是这样的:
void MyDoc::Test()
{
//do something...
for(int i; i<nSumNum; i++)
{
while(1)
{
//do something...
[color=#FF0000]捕捉图片[/color]
//计时,时间到跳出
}
[color=#FF0000]刷新View[/color]
//保存图片。
}
}
我尝试用几种方法都不行:
1.UpdateAllViews(NULL);//根本不刷新
2.pView->SendMessage(WM_PAINT);//得到view的指针,然后发送message,根本不刷新
3.pView->OnDraw(pView->GetDC());//强行调用OnDraw,刷新倒是刷新,只是一点击鼠标,就会卡在最后一张刷新出来的图片上。然后直到停止。在界面停止刷新显示的过程中,程序还是在正常执行的。最后在硬盘里可以看到保存的所有图片。

这个问题弄得我很头痛,先谢过大家了!!!帮忙指点不胜感激!
展开
 我来答
贡甜c9
2008-06-10
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
在循环的时候使用一下类似如下函数:另外,如果消息队列中有多个WM_PAINT消息的话,系统会自动优化合并其中的多项。
void CheckMessageQueue()
{
MSG msg;
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if(msg.message==WM_QUIT) return false;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jason_Cai
2008-06-10 · TA获得超过251个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:215万
展开全部
UpdateAllViews(NULL)或者其它刷新语句后加一句Sleep(0);,给线程一个执行机会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风轻云度
2008-06-10 · TA获得超过1423个赞
知道大有可为答主
回答量:1835
采纳率:0%
帮助的人:0
展开全部
循环计时改到计时器里面做,你这样容易消息阻塞。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式