Windows A P I编程(第二讲).pptVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三节 Windows 应用程序设计特点 在过去,进行Windows程序设计是一件痛苦异常的事情,原因是那时候还没有现在这些设计精美的应用程序开发工具。在今天,即便是一个对Windows程序内部运行机制几乎一无所知的初学者,只需要通过不到一天的学习,也可以使用如 Visual Basic之类的程序开发工具创建出功能完整的Windows应用程序来。 从某种角度说,Windows程序不是编出来的,而是由程序员画出来的。但是要知道,一个出色的Windows的应用程序并不仅在于在屏幕上绘出程序的各个窗口和在窗口中恰当地安排每一个控件。对于具有一定基础的程序员而言,更重要的内容在于知道Windows和Windows应用程序的运行机制,以及它们之间以何种方式来进行通信。换句话说,我们需要透过Windows漂亮的图形用户界面,认清在底层所发生的每一件事情。 尽管MFC应用程序框架提供的是面向对象的Windows编程接口,这和传统的使用C语言和SDK来进行的Windows应用程序设计有着很大的不同,但是从底层来说,其中的大部分功能仍然是通过调用最基本的 Win32 API来实现的。其中最重要的一点是, Windows应用程序的运行机制没有改变,它们仍然是通过消息来和操作系统进而和用户进行交互的事件驱动的应用程序。MFC对这一切进行了比较彻底的封装,它们隐藏在你所看不见的背面。即使你对这一切一无所知,你仍可以在 Visual C++中使用 MFC来进行程序设计。但是理解这一切的最好的方式是看一看这些内容在SDK编写的应用程序是如何实现的,然后,再看一看在MFC中是如何把它们一层一层地与程序员隔离开的。通过了解相对已“过时”的 Win32 SDK编程,有助于理解以后的很多东西。 Windows应用程序是事件驱动(或称作消息驱动)的应用程序。而 Windows 是一个多任务的操作系统,也就是说,在同一时刻,在Windows中有着多个应用程序的实例正在运行,例如我在打开字处理软件Notepad键人纯文本的同时,还打开了Winmap来播放歌曲。在这样的一个操作系统中,不可能像过去的DOS那样,由一个应用程序来享用所有的系统资源,这些资源是由Windows统一管理的。那么,特定的应用程序如何获得用户输入的信息呢?事实上,Windows时刻监视着用户的一举一动,并分析用户的动作与哪一个应用程序相关,然后,将用户的动作以消息的形式发送给该应用程序,应用程序时刻等待着消息的到来,一旦发现它的消息队列中有未处理的消息,就获取并分析该消息,最后,应用程序根据消息所包含的内容采取适当的动作来响应用户所作的操作。 Windows为每一个应用程序,确切地说是每一个线程维护相应的消息队列。应用程序的任务就是不停地从它的消息队列中获取消息,分析和处理消息,直到接到一条叫作WM_QUIT消息为止,这个过程通常是由一种叫作消息循环的程序结构来实现的。 Windows能向应用程序发送的消息多达数百种,但是,对于一般的应用程序来说,只是其中的一部分有意义,如果你的应用程序只使用鼠标,那么如 WM_KEYUP、WM_KEYDOWN和WM_CHAR等消息就没有任何意义,也就是说,应用程序中事实上不需要处理这些事件,对于这些事件,只需要交给Windows作默认的处理即可。因此,在应用程序中,我们需要处理的事件只是所有事件中的一小部分。 事件驱动围绕着消息的产生与处理展开,一条消息是关于发生的事件的消息。事件驱动是靠消息循环机制来实现的。 Windows 应用程序的消息来源有以下 4种: (l)输入消息:包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由应用程序来处理消息。 (2)控制消息:用来与Windows的控制对象,如列表框、按钮、检查框等进行双向通信。当用户在列表框中改动当前选择或改变了检查框的状态时发出此类消息。这类消息一般不经过应用程序消息队列,而是直接发送到控制对象上去。 (3)系统消息:对程序化的事件或系统时钟中断作出反应。一些系统消息,像DDE消息(动态数据交换消息)要通过Windows的系统消息队列,而有的则不通过系统消息队列而直接送入应用程序的消息队列,如创建窗口消息。 (4)用户消息:这是程序员自己定义并在应用程序中主动发出的,一般由应用程序的某一部分内部处理。 Windows程序在处理消息时使用了一种叫作回调函数(Callback Function)的特殊函数。 回调函数由应用程序定义,但是,在应用程序中并没有调用回调函数的代码,回调函数是供操作系统或者其子系统调用的,这种调用通常在

文档评论(0)

kaku + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8124126005000000

1亿VIP精品文档

相关文档