PeekMessage 导致程序不能正常退出 CPU100%
来源:互联网 发布:python 自动签到 编辑:程序博客网 时间:2024/04/30 08:33
代码:
BOOL done = FALSE;
do {
if (PeekMessage(&msg,&hWnd,0,0,PM_REMOVE)){
if(msg.message==WM_QUIT){
done = TRUE;
}else{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}else{
RenderScreen();
}
} while (!done);
//****************************************************
原因分析:
一般情况下,在窗口的循环里会有这样的语句:
case WM_DESTROY:
PostQuitMessage(0);
return 0;
在窗口hWnd向主程序PostQuitMessage后,hWnd的消息队列没有了,再去PeekMessage(&msg,&hWnd,0,0,PM_NOREMOVE)对窗口取WM_QUIT消息时已经取不到任何消息。所以,需要将PeekMessage改为取程序的所有消息即可取出WM_QUIT,将第二个参数改为NULL即可
PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)
- PeekMessage 导致程序不能正常退出 CPU100%
- COM 应用程序不能正常退出
- SIGPIPE导致程序退出
- svchost.exe 导致 CPU100%
- MFC工程不能正常退出的解决方法
- 应用不能正常退出原因排查
- myeclipse building workspace。导致程序变慢、卡死、不能正常操作的解决方案。
- myeclipse building workspace。导致程序变慢、卡死、不能正常操作的解决方案。
- 防止手机进入休眠状态而导致程序不能正常运行——WakeLock
- SIGPIPE导致的程序退出
- SIGPIPE导致的程序退出
- SIGPIPE导致的程序退出
- MSN导致SAP不能正常登陆解决
- NameVirtualHost缺少导致域名不能正常解释
- 超频导致声卡不能正常使用
- Eclipse非正常关闭导致不能正常启动
- wpf程序不能正常打开
- 使用PeekMessage后,调用postquitmessage(0)不能退出消息循环的原因
- C#中@符的作用
- 任意数_任意多个任意数相乘
- 排序算法(c语言描述)
- 来上海的目的
- 关于C语言的指针部分的一点儿小启示
- PeekMessage 导致程序不能正常退出 CPU100%
- zxing移植到qt for symbian触摸屏手机----前言
- Linux进程学习五
- VS编译 error C2275: “XXX”: 将此类型用作表达式非法天天向上
- 洋媳妇教育孩子,让中国婆婆大开眼界
- MATLAB-曲面与网格图命令
- 芮成钢,请不要代表我
- Visual Studio 编写纯C语言程序
- JSTL使用中的一些总结