中国领先的IT技术网站
|
|

2.1 编写一个真正的Windows程序

《游戏编程入门(原书第3版)》第2章侦听Windows消息,本章将更详细地学习Windows消息机制和主循环,并编写一个完整的能够在屏幕上显示一些内容的窗口程序。将学习窗口句柄和设备环境如何一起在窗口上产生输出。本章继续探究实时游戏循环,尤其是获得WinMain之外的实时循环的方法。我们将在本章学到一些新的技巧,以便让实时循环运行,为下一章的DirectX做准备。本节为大家介绍编写一个真正的Windows程序。

作者:陈征/傅鑫 等译来源:机械工业出版社|2011-03-02 18:50

Tech Neo技术沙龙 | 11月25号,九州云/ZStack与您一起探讨云时代网络边界管理实践


第2章 侦听Windows消息

第1章简要地讲解了WinMain和WinProc并且演示了一个简单的Windows程序。本章将更详细地学习Windows消息机制和主循环,并编写一个完整的能够在屏幕上显示一些内容的窗口程序。将学习窗口句柄和设备环境如何一起在窗口上产生输出。我们将借此巩固所掌握的基础Windows编程模型,也将对Windows GDI(图形设备接口)稍作介绍,了解为什么它更适合于应用程序而不是游戏(对于游戏我们有DirectX!)的原因。本章继续探究实时游戏循环,尤其是获得WinMain之外的实时循环的方法。我们将在本章学到一些新的技巧,以便让实时循环运行,为下一章的DirectX做准备。在学习完本章之后,我们将学到编写能够驱动本书其余代码的游戏循环的方法。所以,一定要集中注意力!

本章将学到:

如何创建窗口。

如何在窗口上绘制文本。

如何在窗口上绘制像素点。

WM_PAINT事件在WinProc回调函数中如何工作。

如何创建实时游戏循环。

如何在WinMain中调用其他与游戏有关的函数。

如何使用PeekMessage函数。

如何使用GDI绘制位图。

2.1 编写一个真正的Windows程序

好了,让我们使用上一章所学的新知识来编写一个稍微复杂一点的程序,让它实际创建一个标准窗口并在这个窗口上绘制文本和图形,如图2-1所示。我们在上一章写的第一个程序是个蹩脚的程序!现在我们要写一些真正的Windows代码。似乎很简单,对吧?是,的确是。在窗口上绘图需要许多起始代码,我们通过示例来学习。

创建一个名为WindowTest的Win32项目并在项目中添加新的main.cpp文件。这里先将一个功能更完备的Windows程序的完整代码列出来,然后再对这个程序做反向工程并一行一行详细地讲解。在键入代码时可试着边键入边理解。如果不想键入程序,那么可从CD-ROM中的\sources\chapter02\WindowTest打开项目。

建议 提醒:设置Visual C++的方法可参阅附录A。创建及配置新项目的方法不在这里赘述。

每章都包括一个准备好的、带有名为main.cpp的空白C++文件的Visual C++项目,以便读者在创建新项目时快速打开并使用。建议读者在学习每章内容时,为每个要创建的新项目制作一个示例项目文件夹的副本。

 
图2-1 WindowTest程序
在编译运行程序之后,应该看到如图2-1所示的输出。不知道如何编译程序吗?没问题,我来告诉你。最简单的方法就是按F5键来生成并运行程序(假设没有错误)。如果只想编译代码,那么按Ctrl+Shift+B组合键(生成)。这是对代码进行测试的“专业”方法—先生成,确认没有错误后再按F5键来运行。这些动作也可通过Build菜单和Debug菜单来执行。
 
 
 
 
好了,这是WindowText程序的完整清单,是我们的第一个完整的Windows程序,它能够显示一个标准的程序窗口。现在,我们对其做反向工程,看看Windows程序是如何工作的。
【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月最赞

读 书 +更多

Java程序员面试宝典

本书是程序员面试宝典系列中的一册,也是上一本《程序员面试宝典》的姊妹书。本书对程序设计面试中Java常见的题型和常用解答技巧进行了介绍...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Phthon,最神奇好玩的编程语言