游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1129|回复: 0

问问消息函数

[复制链接]

11

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2008-8-1 08:05:00 | 显示全部楼层 |阅读模式
while(TRUE)
        {
                if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
                {
               
                        if(!GetMessage(&msg,NULL,0,0))
                                return msg.wParam;
                        TranslateMessage(&msg);
                        DispatchMessage(&msg);
                }
                else
                {
                        if(m_bActive)
                        {
                                UpdateFrame();
                        }
                        else
                        {
                          WaitMessage();
                        }
                }
        }
在这段代码中,既然有了PeekMessage何必又要GetMessage呢?是不是PeekMessage设置PM_NOREMOVE,没有删除消息,要用GetMessage把它删除掉啊!

     我还见过一段代码PeekMessage(&msg,m_hwnd,0,0,PM_NOREMOVE),用这样的代码,当点关闭窗口的按钮时,cpu立马涨到100%,从msdn的解释来讲,窗口关闭,进程暂时未退,PeekMessage找不到m_hwnd所以死循环了?
但是既然这第二个参数可以设置窗口句柄,那么我若设置了m_hwnd时,怎末才能正常退出啊!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 20:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表