1 / 19
文档名称:

Windows系统的消息机制.docx

格式:docx   大小:89KB   页数:19页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Windows系统的消息机制.docx

上传人:sssmppp 2019/6/27 文件大小:89 KB

下载得到文件列表

Windows系统的消息机制.docx

相关文档

文档介绍

文档介绍:第1章Windows系统的消息机制对诸如PowerBuilder(后文简写为PB)VisualBasic和Dephi等大多数町视化程序设计语言來讲,程序设计的核心是対象的事件、属性和方法,但対Windows系统本身而言,却是以消息处理为其控制机制。Windows把系统中的对象都作为窗口來对待,每个窗口都有一个用來标识其身份的句柄。Windows通过向窗口发送消息,在开发语言中转化为对•象的事件,然后驱动对象,响应用户的动作。在许多面向对象的可视化程序设计语言中,Windows的众多消息已经演变成了对彖的属性或方法。木章内容包括Windows系统的消息机制、消息的发送、消息的应用实例等。——窗口、事件和消息全而地讨论Windows的内部工作机制需要很大的篇幅,对于一般的PB用户当然没有必耍深入了解所有的技术细节。Windows系统的工作机制,简单地说就是3个关键的概念:窗口、事件和消息。不妨简单地将窗口看做带有边界的矩形区域。读者也许已经了解多种不同类型的窗口,如Windows系统的“资源管理器”窗口、文字处理程序中的文档窗口或者弹出提示有约会信息的消息对话框窗口等。除了这些最普通的窗口外,实际上还有许多其他类型的窗口。命令按钮是一个窗口,图标、文木框、选项按钮和菜单条也都是窗口。Windows操作系统通过给每一个窗口指定一个惟一的标识号(窗口句柄,常用hWnd表示)来管理所有的窗口。操作系统连续地监视每一个窗口的活动或事件的信号。事件可以通过诸如单击鼠标或按卜•按键的操作而产牛,也可以通过程序的控制而产牛,其至可以由另一个窗口的操作而产生。每发生一次事件,将引发一条消息发送至操作系统。操作系统处理该消息并广播给其他窗口。然后,每一个窗口才能根据口身处理该条消息的指令而采取适当的操作(例如,当窗口解除了其他窗口的覆盖时,重新绘制口身窗口)。町以想彖,处理各种窗口、事件和消息的所有可能的组合将有惊人的工作量。幸运的是,PB使用户摆脱了所有的低层消息处理。许多消息由PB口动处理了,其他的作为事件过程由编程者自行处理,这样可以快速创建强人的应用程序,而毋需涉及不必要的细节。,首先了解系统如何准确地将消息发送到指定的窗口。当一个应用或多个应用运行后,会同时创建许多个窗口,Windows作为系统的“人总管”,那么它又是如何识别每一个窗口呢?在程序设计时,通过窗口的名称属性,为每个窗口命名,然示在程序其他部分把窗口名作为识别窗口的标识。这种通过为窗口命名来识别不同窗口的方法,对Windows系统来讲显然是不现实的。Windows系统是通过称Z为句柄的标识符来识别每一个窗口。句柄是系统动态分配给窗口的32位整型数标识值,常用hWnd表示,即英文handletoawindow的缩写。人量API函数都需要窗口句柄作参数,或返回一个窗口或设备场境的句柄。句柄可以通俗地理解为Windows为系统屮所有存在的窗口动态分配的身份识别号码。在PB中,可以通过handle函数来取得窗口和控件的句柄,当声明API函数时,常把保存句柄的变量声明为Long或Ulong长整型数据类型。Windows为窗口和控件分配句柄标识是动态,同样的程序每次运行时和在不同计算机上运行时所分配的窗口句柄标识可能是完全不一样的。窗口的句柄属性仅能在运行时访问,该属性对窗口的外观并没有任何影响,它仅作为API函数调用的参数或返冋值,或其他需识别窗口或对象的地方。在示而章节屮,读者将会看到几乎所有涉及窗口的API函数都需要传递hWnd参数,以便函数准确获得用户要处理的窗口或对象。句柄作为由操作系统定义的惟一的长整型值,可以用它来引用窗体和控件等对彖。在Windows系统中,API函数的调用常用的句柄包括窗口句柄,菜单句柄、设备对象句柄、设备场景句柄,等等。如果函数需要用句柄作为参数,则应该把参数声明为传值,对于返回句柄的API函数,应将返回的句柄值声明为Long或Ulong类型数据类型。句柄是一种标识符(ID)编号,而不是指针或者数值,不要试图对它们进行任何数学运算。,系统通过消息为窗口过程(windowsprocedure)传递输入。系统和应用两者都可以产生消息。对于每个输入事件,例如用户按下了键盘上的某个键、移动了鼠标、单击了一个控件上的滚动条,等等,系统都将产生一系列消息。此外,对于应用带给系统的变化,如字体资源的改变、应用本身窗口的改变,系统都将通过消息以响应这种变化。应川通过产生消息指示应川的窗口完成特定的任务,或与其他应用的窗口进行通信。每个窗口都有一个处理Windows系统发送消息的处理程序,称为窗口程序。它是隐含在