请教个问题(MFC),在for循环里,如何“半路上”处理一下消息? 做了一个步长较多的for在OnPaint,运行起来似乎假死了,想到一个问题,是不是应该在for的期间检查一下消息的,好让窗口挪动等事情也能执行?窗口会出现假死的缘由是否就是这样导致?如果想让窗口半路处理一下只与本窗口有关的消息,应该怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在循环里添加消息处理即可MSG msg; if(PeekMessage(&msg, m_hWnd, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); }不过楼主在OnPaint里处理这么数据似乎有些不合理啊,这样重绘的效率也太低了,建议楼主先计算好所有要画的数据,然后再OnPaint 就是一个动画,类似俄罗斯方块那样,似乎也只能在OnPaint里表现活动了... 把俄罗斯方块的计算部分,放在其它地方,计算完成后,显示(绘图)部分放在OnPaint 如果楼主一定要这样做,则:for(....){............其它代码半路上................PostMessage...................// 不要用SendMessage............其它代码} 感觉楼主解决问题的方向错了,你的问题在于界面假死,即使在for循环中处理了消息,但是还是无法解决界面假死的问题。解决此问题可以考虑将计算和画图分开处理的方法,如果还是存在界面刷新比较慢的问题,建议楼主可以考虑运用双缓冲技术解决此问题! 你的OnPaint只需要画界面就可以了活动在其他地方计算,计算好后发送一个wm_parint消息让系统重画即可 不能在Onpaint中表现活动的。 麻烦各位兄弟推荐一下,在VC6中使用的数据库封装类。。。 [求助]能获取3.0.5版火狐浏览器输入的网址,但是3.6.12版获取不到网址... 如何实现pc1(网通)通过pc2(电信)上网? 怎么修改ie控件的cookie ? 已知用户名和密码,如何访问远程共享目录下的txt文件? 初学VC,一大堆不明 强势推荐 捕获状态栏的内容 如何在ATL里面用#import使用一个OCX?? 这样在树型控件前加图标呢? 有个关于对话框退出后释放资源的疑惑,内存帮忙专家解释一下呗(没分了,哭) 基于对话框,点击确认按钮后,把在文本框输入的内容显示出来。
MSG msg;
if(PeekMessage(&msg, m_hWnd, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}不过楼主在OnPaint里处理这么数据似乎有些不合理啊,这样重绘的效率也太低了,建议楼主先计算好所有要画的数据,然后再OnPaint
就是一个动画,类似俄罗斯方块那样,似乎也只能在OnPaint里表现活动了...
把俄罗斯方块的计算部分,放在其它地方,计算完成后,显示(绘图)部分放在OnPaint
{
............其它代码半路上................
PostMessage...................// 不要用SendMessage............其它代码
}
你的OnPaint只需要画界面就可以了
活动在其他地方计算,计算好后发送一个wm_parint消息让系统重画即可
不能在Onpaint中表现活动的。