windows系统的消息机制

windows系统的消息机制

ID:19237558

大小:371.50 KB

页数:17页

时间:2018-09-30

windows系统的消息机制_第1页
windows系统的消息机制_第2页
windows系统的消息机制_第3页
windows系统的消息机制_第4页
windows系统的消息机制_第5页
资源描述:

《windows系统的消息机制》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、·17·第1章Windows系统的消息机制第1章Windows系统的消息机制对诸如PowerBuilder(后文简写为PB)、VisualBasic和Dephi等大多数可视化程序设计语言来讲,程序设计的核心是对象的事件、属性和方法,但对Windows系统本身而言,却是以消息处理为其控制机制。Windows把系统中的对象都作为窗口来对待,每个窗口都有一个用来标识其身份的句柄。Windows通过向窗口发送消息,在开发语言中转化为对象的事件,然后驱动对象,响应用户的动作。在许多面向对象的可视化程序设计语言中,Windows的众多消息已经演变成了对象的属性或方法。本章内容包括W

2、indows系统的消息机制、消息的发送、消息的应用实例等。1.1Windows的工作机制1.1.1Windows的工作方式——窗口、事件和消息全面地讨论Windows的内部工作机制需要很大的篇幅,对于一般的PB用户当然没有必要深入了解所有的技术细节。Windows系统的工作机制,简单地说就是3个关键的概念:窗口、事件和消息。不妨简单地将窗口看做带有边界的矩形区域。读者也许已经了解多种不同类型的窗口,如Windows系统的“资源管理器”窗口、文字处理程序中的文档窗口或者弹出提示有约会信息的消息对话框窗口等。除了这些最普通的窗口外,实际上还有许多其他类型的窗口。命令按钮是一

3、个窗口,图标、文本框、选项按钮和菜单条也都是窗口。Windows操作系统通过给每一个窗口指定一个惟一的标识号(窗口句柄,常用hWnd表示)来管理所有的窗口。操作系统连续地监视每一个窗口的活动或事件的信号。事件可以通过诸如单击鼠标或按下按键的操作而产生,也可以通过程序的控制而产生,甚至可以由另一个窗口的操作而产生。每发生一次事件,将引发一条消息发送至操作系统。操作系统处理该消息并广播给其他窗口。然后,每一个窗口才能根据自身处理该条消息的指令而采取适当的操作(例如,当窗口解除了其他窗口的覆盖时,重新绘制自身窗口)。可以想象,处理各种窗口、事件和消息的所有可能的组合将有惊人的

4、工作量。幸运的是,PB使用户摆脱了所有的低层消息处理。许多消息由PB自动处理了,其他的作为事件过程由编程者自行处理,这样可以快速创建强大的应用程序,而毋需涉及不必要的细节。1.1.2句柄的概念在解释消息之前,首先了解系统如何准确地将消息发送到指定的窗口。当一个应用或多个应用运行后,会同时创建许多个窗口,Windows作为系统的“大总管”·17·第1章Windows系统的消息机制,那么它又是如何识别每一个窗口呢?在程序设计时,通过窗口的名称属性,为每个窗口命名,然后在程序其他部分把窗口名作为识别窗口的标识。这种通过为窗口命名来识别不同窗口的方法,对Windows系统来讲显

5、然是不现实的。Windows系统是通过称之为句柄的标识符来识别每一个窗口。句柄是系统动态分配给窗口的32位整型数标识值,常用hWnd表示,即英文handletoawindow的缩写。大量API函数都需要窗口句柄作参数,或返回一个窗口或设备场境的句柄。句柄可以通俗地理解为Windows为系统中所有存在的窗口动态分配的身份识别号码。在PB中,可以通过handle函数来取得窗口和控件的句柄,当声明API函数时,常把保存句柄的变量声明为Long或Ulong长整型数据类型。Windows为窗口和控件分配句柄标识是动态,同样的程序每次运行时和在不同计算机上运行时所分配的窗口句柄标识

6、可能是完全不一样的。窗口的句柄属性仅能在运行时访问,该属性对窗口的外观并没有任何影响,它仅作为API函数调用的参数或返回值,或其他需识别窗口或对象的地方。在后面章节中,读者将会看到几乎所有涉及窗口的API函数都需要传递hWnd参数,以便函数准确获得用户要处理的窗口或对象。句柄作为由操作系统定义的惟一的长整型值,可以用它来引用窗体和控件等对象。在Windows系统中,API函数的调用常用的句柄包括窗口句柄,菜单句柄、设备对象句柄、设备场景句柄,等等。如果函数需要用句柄作为参数,则应该把参数声明为传值,对于返回句柄的API函数,应将返回的句柄值声明为Long或Ulong类型

7、数据类型。句柄是一种标识符(ID)编号,而不是指针或者数值,不要试图对它们进行任何数学运算。1.1.3消息的概念Windows系统是以消息处理为其控制机制,系统通过消息为窗口过程(windowsprocedure)传递输入。系统和应用两者都可以产生消息。对于每个输入事件,例如用户按下了键盘上的某个键、移动了鼠标、单击了一个控件上的滚动条,等等,系统都将产生一系列消息。此外,对于应用带给系统的变化,如字体资源的改变、应用本身窗口的改变,系统都将通过消息以响应这种变化。应用通过产生消息指示应用的窗口完成特定的任务,或与其他应用的窗口进行通信。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。