分析c#中消息模拟工作流程

分析c#中消息模拟工作流程

ID:15361221

大小:33.00 KB

页数:5页

时间:2018-08-02

分析c#中消息模拟工作流程_第1页
分析c#中消息模拟工作流程_第2页
分析c#中消息模拟工作流程_第3页
分析c#中消息模拟工作流程_第4页
分析c#中消息模拟工作流程_第5页
资源描述:

《分析c#中消息模拟工作流程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、分析C#中消息模拟工作流程  C#中消息的工作流程:  C#中的消息被Application类从应用程序消息队列中取出,然后分发到消息对应的窗体,窗体对象的第一个响应函数是对象中的protectedoverridevoidWndProc(refSystem.Windows.Forms.Messagee)方法。  它再根据消息的类型调用默认的消息响应函数(如OnMouseDown),默认的响应函数然后根据对象的事件字段(如this.MouseDown)中的函数指针列表,调用用户所加入的响应函数(如Fo

2、rm1_MouseDown1和Form1_MouseDown2),而且调用顺序和用户添加顺序一致。  根据这个流程,我做了个模仿程序,有不足的地方还请大家提供更完善的补充。  usingSystem;  //创建一个委托,返回类型void,两个参数  publicdelegatevoidKeyDownEventHandler(objectsender,KeyEventArgse);  //数据参数类  classKeyEventArgs:EventArgs  {  privatecharkeyCha

3、r;  publicKeyEventArgs(charkeyChar)  :base()  {  this.keyChar=keyChar;  }  publiccharKeyChar  {  get{returnkeyChar;}  }  }  //模仿Application类  classM_Application  {  publicstaticvoidRun(M_Formform)  {  boolfinished=false;  do  {  Console.WriteLine("Inpu

4、tachar");  stringresponse=Console.ReadLine();  charresponseChar=(response=="")?'':char.ToUpper(response[0]);  switch(responseChar)  {  case'X':  finished=true;  break;  default:  //得到按键信息的参数  KeyEventArgskeyEventArgs=newKeyEventArgs(responseChar);  //向

5、窗体发送一个消息  form.WndProc(keyEventArgs);  break;  }  }while(!finished);  }  }  //模仿窗体类  classM_Form  {  //定义事件  publiceventKeyDownEventHandlerKeyDown;  publicM_Form()  {  this.KeyDown+=newKeyDownEventHandler(this.M_Form_KeyDown);  }  //事件处理函数  privatevoid

6、M_Form_KeyDown(objectsender,KeyEventArgse)  {  Console.WriteLine("Capturekey:{0}",e.KeyChar);  }  //窗体处理函数  publicvoidWndProc(KeyEventArgse)  {  KeyDown(this,e);  }  }  //主程序运行  classMainEntryPoint  {  staticvoidMain()  {  M_Application.Run(newM_Form()

7、);  }  }

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

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

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