实时消息抽取循环
来源:互联网 发布:python 统计文章字数 编辑:程序博客网 时间:2024/05/21 20:02
怎样在屏幕上连续不断显示图形来催眠用户呢?仅用GetMessage()是办不到的。
如果消息队列中没有消息,GetMessage()就会等待,直到新的消息出现在队列中。
因为许多游戏是充满动作的,需要猛击键盘,产生场景变化,利用简单的GetMessage()
通常不能符合要求,游戏编程者不希望玩家在没有新的动作是游戏静止不动,他们希望
怪兽从后面冲出来,围攻玩家,追捕玩家。为了做到这样的效果,需要这样一种消息
循环:只有遇到需要处理的消息时才去处理消息,其余的时间都让游戏代码自动产生
激烈的场面。为了做到这一点需要用到PeekMessage()函数。
PeekMessage (From MSDN)
The PeekMessage function checks a thread message queue for a message and
places the message (if any) in the specified structure.
BOOL PeekMessage(
LPMSG lpMsg, // pointer to structure for message
HWND hWnd, // handle to window
UINT wMsgFilterMin, // first message
UINT wMsgFilterMax, // last message
UINT wRemoveMsg // removal flags
);
PeekMessage()函数和GetMessage()函数很相,惟一不同的是最后个参数: wRemoveMsg;
它的值可以是: PM_NOREMOVE--表示消息处理后仍留在消息队列中;
PM_REMOVE--表示消息处理后从队列中移去。 通常选择使用后者。
若队列中有消息,PeekMessage()将返回true;
若队列中无消息,PeekMessage()将返回false;
要创建实时消息的抽取循环,就需要更复杂一些. 若只是简单的把GetMessage()替换为
PeekMessage(), 则当队列中没有消息时,程序将会一闪而过. 因此实际的程序中需要
更强健的设计.
- 实时消息抽取循环
- Lesson 5: 实时消息循环
- 【DirecX 教程】Lesson 5:实时消息循环
- 【DirectX11-Tutorial】实时消息循环The Real-Time Message Loop
- KETTLE循环抽取
- SSIS循环抽取Excel文件
- Flume实时抽取监控目录数据
- BW实时抽取ECC数据的实现
- Flume实时抽取监控目录数据
- 消息循环
- 消息循环
- 消息循环
- 消息循环
- 消息循环
- 消息循环
- 消息循环
- 消息循环
- 消息循环
- tomcat虚拟目录和目录列表配置
- 谈Web2.0技术在虚拟学习社区知识管理中的应用
- SSD5之查找排序的基本概念
- 鱼和熊掌不可兼得
- 如何用Word编辑参考文献(转)
- 实时消息抽取循环
- 如何设计通用的网站模板
- ubuntu firefox无法输入中文问题解决方法
- 《虞美人》欣赏
- 2.5.2 队伍里的骨干——mainframe页面
- static和final关键字总结(转)
- 混乱的关于接口(Interface)的理解!
- 如何使用微软的SDK
- Java程序性能优化