您的位置:首页 > 其它

MFC 让程序停一下 但不卡住的办法

2014-12-04 16:40 169 查看
不管是因为要偷懒还是确实有这个需求,有时候我会遇到这样的需求,程序执行到某处的时候 我要停一秒再继续,但还不能让界面卡主。显然用系统自带的sleep函数 会导致主界面卡死。 那么怎么办呢? 我想有经验的程序猿 一定可以说出至少100种解决办法(稍微有点夸张)。不过我只会一种(因为会一种就行了)!!!!

那就是调用WaitEx函数,这个函数不是api哦 下面我把代码贴上

typedef struct _WAITDATA1

{

_WAITDATA1()

{

bExitFlag = FALSE;

dwTime = 0;

}

BOOL bExitFlag;

DWORD dwTime;

} WAITDATA1, *LPWAITDATA1;

UINT ThreadWait( LPVOID pParam )

{

LPWAITDATA1 data = (LPWAITDATA1)(pParam);

Sleep( data->dwTime );

data->bExitFlag = TRUE;

return 0;

}

void WaitEx( int iMillSec )

{

WAITDATA1 data;

data.dwTime = iMillSec;

AfxBeginThread( ThreadWait, &data );

MSG msg;

ZeroMemory( &msg, sizeof(msg) );

while( !data.bExitFlag )

{

if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )

{

TranslateMessage( &msg );

DispatchMessage( &msg );

}

}

}

前边的乱七八糟的 都是为WaitEx服务的 不用管

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐