VS2010下DoEvents
2014-08-27 13:14
106 查看
VB和C#下有一个DoEvents方法,可以让程序在执行操作的同时仍可以处理其他事件。由于近期在做一个数据格式转换的项目,需要进行大批量的数据处理,希望能在进行数据读写过程中,程序还能接收其他操作,防止假死现象。百度了一下,发现VB和C#下有此函数,VC下需自己写。
MSDN说明:
DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。
DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如搜寻一个文件 — 特别有用。对于长时间过程,放弃控制权最好使用定时器或通过委派任务给 ActiveX EXE 部件来完成。以后,任务还是完全独立于应用程序,多任务及时间片由操作系统来处理。
VC版DoEvents
以上是网上的一种方法,结合自己项目需求,写DoEvents()如下:
void DoEvents()
{
MSG msg;
if(::PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
if(msg.message == WM_QUIT){
::PostQuitMessage(-1);
}
if(!AfxGetApp()->PreTranslateMessage(&msg)){
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}
AfxGetApp()->OnIdle(0);
AfxGetApp()->OnIdle(1);
}
VB和C#下有一个DoEvents方法,可以让程序在执行操作的同时仍可以处理其他事件。由于近期在做一个数据格式转换的项目,需要进行大批量的数据处理,希望能在进行数据读写过程中,程序还能接收其他操作,防止假死现象。百度了一下,发现VB和C#下有此函数,VC下需自己写。
MSDN说明:
DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。
DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如搜寻一个文件 — 特别有用。对于长时间过程,放弃控制权最好使用定时器或通过委派任务给 ActiveX EXE 部件来完成。以后,任务还是完全独立于应用程序,多任务及时间片由操作系统来处理。
VC版DoEvents
void DoEvents() 02.{ 03. MSG msg; 04. while(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) 05. { 06. DispatchMessage(&msg); 07. TranslateMessage(&msg); 08. } 09.}
以上是网上的一种方法,结合自己项目需求,写DoEvents()如下:
void DoEvents()
{
MSG msg;
if(::PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
if(msg.message == WM_QUIT){
::PostQuitMessage(-1);
}
if(!AfxGetApp()->PreTranslateMessage(&msg)){
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}
AfxGetApp()->OnIdle(0);
AfxGetApp()->OnIdle(1);
}
相关文章推荐
- 关于vs2005、vs2008和vs2010项目互转的总结
- vs2010根据字符串内容添加断点的方法介绍
- 在vs2010中调试javascript代码方法
- VS2010写的程序在自己电脑可以运行、其他电脑上不能运行的解决方案
- 使用VS2010 C#开发ActiveX控件(下),完整代码打包下载
- 使用VS2010 C#开发ActiveX控件(上)
- 解析VS2010利用VS.PHP插件调试PHP的方法
- win7系统下 vs2010 调式就关闭要重启处理方法
- VS2010、VS2008等项目的默认浏览器修改方法(图文)
- 如何在VS2012中查看IL代码
- VS2010/MFC编程入门之前言
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
- VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)
- VS2010/MFC编程入门之四(MFC应用程序框架分析)
- VS2010/MFC编程入门之五(MFC消息映射机制概述)
- VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)
- VS2010/MFC编程入门之七(对话框:为对话框添加控件)
- VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)
- VS2010/MFC编程入门之十(对话框:设置对话框控件的Tab顺序)