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服务的 不用管
完
那就是调用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服务的 不用管
完
相关文章推荐
- MFC 让程序停一下 但不卡住的办法
- [C++ VC MFC]巧妙程序自删除 仅供参考 我测试了一下不能删除自己
- Visual studio 2008/2010 MFC程序Menu、Toolbar字体模糊偏小解决办法
- MFC程序出现a problem caused the program to stop working correctly对话框的解块办法
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- VS2013中MFC程序最大化运行遮盖任务栏的解决办法
- 不用MFC向导创建MFC程序时产生错误的解决办法
- MFC程序出现a problem caused the program to stop working correctly对话框的解块办法
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- Visual studio 2008/2010 MFC程序Menu、Toolbar字体模糊偏小解决办法
- Visual C++ 6.0 中 MFC 单文、多文档程序工具栏在 XP 风格下显示不正常的解决办法
- 关于MFC程序按ENTER和ESC会退出的解决办法
- MFC对话框程序: 回车,ESC对话框消失解决办法总结
- MFC程序出现a problem caused the program to stop working correctly对话框的解块办法
- 091001再来复习一下MFC程序的基础
- MFC中由UNICODE改为多字节,程序界面老版本MFC的解决办法
- VC MFC 对话框 敲回车,ESE键,程序自动退出解决办法
- VS2005调试MFC程序时出现Runtime error的解决办法
- MFC对话框程序不能响应WM_CHAR消息的解决办法