分析1驱动大三上.pptxVIP

  1. 1、本文档共17页,可阅读全部内容。
  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文档。上传文档
查看更多

18事件事件驱动发布与订阅事件参数类事件处理器Event关键字发布事件类订阅事件类协作过程

21事件驱动GUI应用程序的机制。事件驱动。

3WindowsGUI的事件驱动与消息处理机制输入界面1输入界面2输入界面3开始初始化创建窗口进入消息循环读取消息发送消息消息是WM_QUIT?程序要处理此消息吗?程序终止处理消息缺省处理yynn

4typedefstructtagMSG{HWNDhwnd;//消息要发送到的窗口的句柄。UINTmessage;//消息的唯一标识,在windows头文件中定义,以WM_为前缀WPARAMwParam;//32位的消息参数,确切意义取决于消息本身LPARAMlParam;//32位的消息参数,确切意义取决于消息本身DWORDtime;//消息放入队列的时间,windows使用其来保持消息的顺序POINTpt;//消息放入消息队列时的鼠标坐标。}MSG,*PMSG;

5LRESULTCALLBACKWndProc(HWNDhWnd,//窗口句柄UINTmessage,//消息标识符WPARAMwParam,//消息参数1LPARAMlParam)//消息参数2从窗口句柄中可以得到消息的发送目的地。从消息参数中可以提取消息的发送主体。使用SDK来进行GUI编程琐碎,低效。

62发布与订阅有多种编程模型来实现事件驱动。MFC(MVC)。VCL事件的发布和订阅对以上事件驱动(消息循环)进行面向对象的封装。C#对象可以发布(publish)一组事件供其他类订阅(subsribe)。当发布类产生事件时,所有订阅者都可以得到通知。

7C#中的“事件”是当对象发生某些有趣的事情时,类向该类的客户提供通知的一种方法。事件最常见的用途是用于图形用户界面;通常,表示界面中的控件的类具有一些事件,当用户对控件进行某些操作(如单击某个按钮)时,将通知这些事件。但是事件未必只用于图形界面。事件为对象提供一种通常很有用的方法来发出信号表示状态更改,这些状态更改可能对该对象的客户很有用。事件是创建类的重要构造块,这些类可在大量的不同程序中重复使用。

83事件参数类EventArgs是包含事件数据的类的基类。此类不包含事件数据,在事件引发时不向事件处理程序传递状态信息的事件会使用此类。如果事件处理程序需要状态信息,则应用程序必须从此类派生一个类来保存数据。

9publicclassTimeInfoEventArgs:EventArgs{publicreadonlyinthour;publicreadonlyintminute;publicreadonlyintsecond;publicTimeInfoEventArgs(inthour,intminute,intsecond){this.hour=hour;this.minute=minute;this.second=second;}}事件参数类是对Windows消息的封装与推广。

104.事件处理器事件发生后,处理该事件的函数称为事件处理器(eventhandler)。.net规定这个函数具有如下形式:voidSecondChangeHandler(objectsender,//事件的发送者,任何对象都派生于object。TimeInfoEventArgsfe);//事件参数事件处理器具有如上的原型,因此使用delegate来定义之:publicdelegatevoidSecondChangeHandler(objectclock,TimeInfoEventArgstimeInformation);事件处理器类比于窗口过程。(WindowsProcedure)

115.event关键字。发布事件的类以event关键字来表名此类有一个处理某种事件的处理器函数,即某delegate的实例。eventSecondChangeHandlerOnSecondChange;Event用来控制订阅类访问事件的方式。订阅类选择给event所代表的委托应初始化为怎样的函数。即如何响应事件。

126发布事件类publicclassClock{privateinthour;privateintminute;privateintsecond;//定义一

文档评论(0)

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

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

1亿VIP精品文档

相关文档