《Windows游戏编程大师技巧》(第二版)第2章(1)
第2章 Windows编程模型"Lilu Dallas Multipass!"—Lilu, The 5th Element(电影《第五元素》)Windows编程就像去见牙科医生:虽然明明知道对自己是有益处的,可还是没人喜欢总是找牙医。对不对?在本章中,我将要使用“禅”的方法——或者换句话说,就是深入浅出地向你介绍基本的Windows编程。虽然我不能保证在阅读本章之后你会变得更加喜欢去见牙医,但是我敢保证你会比以往更喜欢Windows编程。下面是本章的内容:• Windows的历史• Windows的基本风格• Windows的类(Class)• 创建窗口• Windows事件句柄(Event Handler)• 事件驱动编程和事件循环• 打开多个窗口Windows的起源别因为我要解放你的思想而感到害怕(特别是钟情于DOS的顽固分子)。让我们迅速浏览一下Windows这些年的形成和发展,以及它与游戏开发界的关系,好吗?早期版本的WindowsWindows的发展始于Windows 1.0版本。这是Microsoft公司商业化视窗操作系统的第一次尝试,当然它是一个相当失败的产品。Windows 1.0完全建立在DOS基础上(这就是一个错误),不能执行多任务,运行速度很慢,看上去也差劲。它的外观可能是其失败的最重要原因。除了讽刺以外,问题还在于Windows 1.0与那个时代的80286计算机(或更差的8086)所能提供的相比需要更高的硬件、图像和声音性能。然而,Microsoft稳步前进,很快就推出了Windows 2.0。我记得获得Windows 2.0的Beta测试版时我正在Software Publishing Corporation工作。在会议室中,挤满了公司的各级主管,也包括公司总裁(像往常一样,他正端着一杯鸡尾酒)。我们运行Windows 2.0 Beta演示版,装载了多个应用程序,看上去似乎还说得过去。但是,那时IBM已经推出了PM。PM看上去要好得多,而且是建立在比Windows 2.0先进得多的操作系统OS/2的基础上的。而Windows 2.0依然是基于DOS的视窗管理器。那天董事的结论是:“不错,但还不是一个可继续开发的操作系统。让我们继续开发DOS程序好了,给我再来一杯鸡尾酒怎么样?”Windows 3.x1990年,各星系的行星终于结盟了,因为Windows 3.0问世了,而且表现酷毙!尽管它仍然赶不上 Mac OS的标准,但是谁还在意呢?(真正的程序员都讨厌Mac)。软件开发人员终于可以在PC机上创建迷人的应用程序了,而商用应用程序也逐渐脱离DOS。这成了PC机的转折点,终于将Mac完全排除在商用应用程序之外了,而后也将其挤出桌面出版业(那时,Apple公司每5分钟就推出一种新硬件)。尽管Windows 3.0工作良好,却还是存在许多的问题、软件漏洞,但从技术上说它已是Windows 2.0之后的巨大突破,有问题也是在所难免。为了解决这些问题,Microsoft推出了Windows 3.1,开始公关部和市场部打算称之为Windows 4.0,但是,Microsoft决定只简单地称之为Windows 3.1,因为它还不足以称之为升级的换代版本。它还没有做到市场部广告宣传的那样棒。Windows 3.1非常可靠。它带有多媒体扩展以提供音频和视频支持,而且它还是一个出色的、全面的操作系统,用户能够以统一的方式来工作。另外,还存在一些其他的版本,如可以支持网络的Windows 3.11(适用于工作组的Windows)。惟一的问题是Windows 3.1仍然是一个DOS应用程序,运行于DOS扩展器上。Windows 95另一方面,从事游戏编程的人们还在唱着“坚守DOS岗位直到炼狱冻结!”的赞歌,而我甚至都焚烧了一个Windows 3.1的包装盒!但是,1995年炼狱真的开始冷却了——Windows 95终于推出。它是一个真正32位的、多任务、多线程的操作系统。诚然,其中还保留了一些16位代码,但在极大程度上,Windows 95是PC机的终极开发和发布平台。(当然,Windows NT 3.0也同时推出,但是NT对于大多数用户来讲还是不可用的,因此这里也就不再赘述。)