求助,不明原因的问题
我做了一个WIN32程序(游戏),是纯C++、WINAPI和OPENGL的,没有用MFC。
程序一运行就关闭不了了,点击窗口右上的‘X’没用,但右键点任务栏,在选“关闭”则可以。
程序里处理WM_CLOSE消息时是调用POSTQUITMESSAGE(0)的,但这句话根本不起作用,用断点查看,POSTQUITMESSAGE(0)这句话也执行,就是没有反映,这是怎么回事?各位遇到过这样问题的请帮帮我,分不够在加,不胜感激,谢。
问题点数:50、回复次数:14Top
1 楼lpy2003(寒假应该干什么呢)回复于 2005-01-02 02:13:58 得分 10
可能是postquitmessage(0)优先级太低
你直接exit(-1)算了Top
2 楼sunyanbiao_12(废人)回复于 2005-01-02 06:01:08 得分 8
你的程序收不到消息,因为没有消息处理的哪个代码.Top
3 楼liudaqin(&& || ! 路漫漫其修远兮)回复于 2005-01-02 09:11:03 得分 1
学习Top
4 楼capoatguitar(菠萝蜜汁红塔山)回复于 2005-01-02 13:44:42 得分 0
鬼谷子说的我不太明白,POSTQUITMESSAGE(0)这句话是执行了,怎么会收不到消息呢?
点‘X’关闭时也不是每次都关闭不了,偶尔也能关闭,关闭不了占90%,到底怎么回事?Top
5 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2005-01-02 18:06:23 得分 1
学习
Top
6 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-01-02 18:34:59 得分 10
是不是有大量数据处理?
消息响应不过来Top
7 楼sharkhuang(走吧走吧!人总会慢慢长大~)回复于 2005-01-02 19:09:29 得分 1
markTop
8 楼Goldbach(hufuping)回复于 2005-01-02 20:38:43 得分 1
learingTop
9 楼l_b_q()回复于 2005-01-02 22:22:57 得分 4
主线程太忙,界面响应线程优先级低Top
10 楼kingofvc(提薪像做贼 )回复于 2005-01-02 22:39:21 得分 4
WM_DESTROY的时候PostQuitMessageTop
11 楼capoatguitar(菠萝蜜汁红塔山)回复于 2005-01-03 13:28:58 得分 0
main 函数里循环是:
while(1)
{
if (PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE))
{
if(msg.message == WM_QUIT)
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
消息处理函数WinProc有:
case WM_CLOSE:
PostQuitMessage(0);
break;
就是这样的,也真有可能是主线程忙的没时间处理这些了,那应该怎样改才可以呢?
Top
12 楼capoatguitar(菠萝蜜汁红塔山)回复于 2005-01-03 22:09:53 得分 0
自己顶Top
13 楼Anikan(皮皮鱼)回复于 2005-01-04 10:56:32 得分 10
主线程的优先级应该是要最高的。以便及时相应用户的命令。从程序上看没有问题的。Top
14 楼capoatguitar(菠萝蜜汁红塔山)回复于 2005-01-04 14:16:42 得分 0
自己解决了.
把PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE)换成PeekMessage(&msg,NULL, 0, 0, PM_REMOVE)
不知道会不会有别的隐患!Top




