博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC 等待函数 WaitKey
阅读量:4298 次
发布时间:2019-05-27

本文共 642 字,大约阅读时间需要 2 分钟。

我从OpenCV的等待函数中改进!

1.可以实现“等待”功能。

2.可以定时。

3.可以处理消息。防止界面卡死。

void WaitKey( int delay )  //单位毫秒
{
if (delay <= 0)
{
return;
}
//计算当前的毫秒数
int time0 = GetTickCount();   
//无限循环 
for(;;)
{
MSG message;
//如果等候时间已到 ,则退出函数
if(    (delay > 0 &&   abs((int)(GetTickCount() - time0)) >= delay) )
return ;
else if( PeekMessage(&message, 0, 0, 0, PM_REMOVE) == FALSE ) // 如果没有查询到消息. (非阻塞式函数)
{
Sleep(1); //让渡出线程的时间片,防止CPU居高不下; 等待时间可能很长,不可能让CPU一直处理本函数。该用法很有用。
continue; //继续f无限or循环
}
//派发消息
TranslateMessage(&message);
DispatchMessage(&message);
}

}

PS: 基本上能用。有时候会有问题!

如果应用程序退出的时候,WaitKey还会运行,那么建议给for循环加一个 bWaitFlag

for(;bWaitFlag;)            //加一个判断;

bWaitFlag = FALSE;    //退出EXE

转载地址:http://crnws.baihongyu.com/

你可能感兴趣的文章
25 iOS App Performance Tips & Tricks
查看>>
那些好用的iOS开发工具
查看>>
iOS最佳实践
查看>>
使用CFStringTransform将汉字转换为拼音
查看>>
更轻量的 View Controllers
查看>>
Chisel-LLDB命令插件,让调试更Easy
查看>>
时间格式化hh:mm:ss和HH:mm:ss区别
查看>>
When to use Delegation, Notification, or Observation in iOS
查看>>
Objective-C Autorelease Pool 的实现原理
查看>>
编程语言大牛王垠:编程的智慧,带你少走弯路
查看>>
ios指令集以及基于指令集的app包压缩策略
查看>>
iOS开发者的福利 — — iOS9+Xcode7免越狱免证书直接调试
查看>>
3、JavaWeb学习之基础篇—JSP
查看>>
4、JavaWeb学习之基础篇—Session
查看>>
5、JavaWeb学习之基础篇—标签(自定义&JSTL)
查看>>
8、JavaWEB学习之基础篇—文件上传&下载
查看>>
reRender属性的使用
查看>>
href="javascript:void(0)"
查看>>
h:panelGrid、h:panelGroup标签学习
查看>>
f:facet标签 的用法
查看>>