资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
Windows的消息驱动机制在工程实践中的应用摘要:windows的消息驱动机制包括windows消息系统的组成和windows消息生成、传递和处理的过程这样两个方面;windows的消息系统由三部分组成:消息队列、消息循环、窗口函数。除了截获windows发送的消息进行处理之外,我们可以在应用程序的窗口和控件之间发送消息,在delphi中我们可以使用windowsAPI函数POSTMessage方法在应用程序中发送消息。关键词:windows的消息驱动机制;消息队列;消息循环;窗口函数一、 windows的消息驱动机制windows的消息驱动机制包括windows消息系统的组成和windows消息生成、传递和处理的过程两个方面。消息队列:windows操作系统本身维护一个临时存放消息的系统消息队列。当某事件发生时,windows会生成相应的消息或消息序列。消息循环:每一个windows应用程序都包含有一段称为消息循环的代码,消息循环代码用于从消息队列中检索消息并进行分发,一直到收到退出应用程序的消息并结束程序的运行时为止。窗口函数:应用程序中的每个窗口对象都注册自己的一个窗口函数,该函数用来接受应用程序消息循环代码所分发的各种消息并进行相应的处理,从而实现windows操作系统的窗口功能。二、 windows消息生成、传递和处理的过程如图11所示,windows消息生成、传递和处理过程分为5个步骤:1、系统中发生某个事件;2、 Windows操作系统将发生的事件变换为相应的消息并将其放入消息队列;3、应用程序从消息队列中获取消息并将其封装在一个TMsg记录中;3、 应用程序将TMsg分发给相应的窗口函数;5、 Windows操作系统回调窗口函数,由窗口函数对消息进行处理。上述过程中,应用程序循环往复地不断从消息队列中取回消息并分发给窗口函数进行处理,从而构成应用程序的消息循环。在上述过程中,应用程序循环往复地不断从消息队列取回消息并分发给窗口函数进行处理,从而构成了应用程序地消息循环。三、windows发送消息在工程实践中的应用在应用程序的窗口和控件之间发送消息,甚至可以向其他应用程序或windows发送消息,在delphi中,可以使用windowsAPI函数PostMessage在应用程序中发送消息。只要我们知道目的的窗口句柄,就可以使用PostMessage方法向它发送消息。在windows单元中,它们的定义为:FunctionPostMessage(hWnd:HWND;Msg:UINT;wParam:WPARAM;LParam:LPARAM):BOOL;stdcall;hWnd:该参数用于标识接受消息的窗口句柄;Msg:该参数用于指定待发送消息的消息常量;wParam:用于附加的第一个消息参数;IParam:用于附加的第二个消息参数。下面给由一个PostMessage方法在工程实践中的应用例子。unitC_Netmen;interfaceusesSysUtils,scktcomp,windows,Messages,Dialogs,Controls,Forms,StdCtrls,Classes,addnote;constWM_NETMESSAGE=WM_USER+2;typePublic/客户端错误事件procedureClientOnError(Sender:TObject;Socket:TCustomWinSocket;ErrorEvent:TErrorEvent;varErrorCode:Integer);end;varhMainHwnd:HWND;ServerOpen:boolean;/服务开启标志implementationprocedureTNetMen.ClientOnError(Sender:TObject;Socket:TCustomWinSocket;ErrorEvent:TErrorEvent;varErrorCode:Integer);beginifErrorCode=10061then/服务器未打开beginErrorCode:=0;ServerOpen:=false;client.Close;PostMessage(hMainHwnd,WM_NETMESSAGE,0,0);end;ifErrorCode=10060then/连接超时beginErrorCode:=0;ServerOpen:=false;client.Close;PostMessage(hMainHwnd,WM_NETMESSAGE,0,0);end;client.Close;end;end.参考文献:1牛汉民Delphi应用开发教程2005.064、5、15
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号