网站开发招标任务书,用python做网站优点,html网页布局,网站建设的用户环境消息、句柄和窗口 一#xff0c;为什么我要花时间研究这些东西 对于我个人来说我不想做码农#xff0c;不想只知道拖控件#xff0c;使用控件有的时候要了解一下底层#xff0c;不知道你们有没有想过这样的一个问题#xff0c;我们在C#中使用的的event事件是怎么触发这个事…消息、句柄和窗口 一为什么我要花时间研究这些东西 对于我个人来说我不想做码农不想只知道拖控件使用控件有的时候要了解一下底层不知道你们有没有想过这样的一个问题我们在C#中使用的的event事件是怎么触发这个事件呢事件无非就是对委托的封装在类内不管用public还是protected进行修饰再类外都是private只能在类外或者-对事件进行注册或者注销。这能说明什么呢这只能说明你已经将事件进行了绑定说白了就是将方法的地址使用一种参数的形式进行了传递从一个类传递到另一个类中然后对这个方法进行实现。如果我们建一个Windows应用程序的时候我们在重绘窗口是会复写函数Onpaint复写之后这个方法又是怎样进行控制的呢 二、原因何在 Windows应用程序是事件驱动的也就是说Windows应用程序将等待系统传递输入然后应用程序的对输入作出响应将控件返回到系统上。系统和应用程序通过“Windows消息”通信。无论何时用户移动鼠标或者单击键盘时系统就将消息发送到应用程序。应用程序有一个特殊的函数称为“窗口过程”处理所接受的信息以使对用户的输入作出响应。这个函数传统上称WndProc一般不必这样称呼它。可是用户交互作用并不只是创建应用程序要处理的消息另一个示例是电源管理。恰好系统进入休眠模式之前将消息发送到所有开放应用程序。如果应用程序并不准备进入休眠模式他可以将消息发送回系统说“此时不要进入睡眠模式” 消息路由有两种类型。一种是将消息发送到称为消息队列的“先进先出”队列中。对于所创建的每个用户界面线程来说有一个系统消息队列和一个特定线程队列。当用户移动鼠标是相关信息放到系统消息队列中。系统检查该消息以确定建议那个窗体处理该消息然后将消息发送到窗口的WndProc函数进行处理。鼠标和键盘消息就是排队消息的示例。路由消息的其他方式系统将消息直接发送到窗口过程中。通常情况下会发送不排队消息通知直接影响窗口的事件。诸如重新设置大小以及窗口激活类的消息将一部排队消息的形式发送。 每个应用程序可能由几个窗体或者窗口组成。每个窗口都有一个窗口过程来处理发送给它的消息。窗口过程将检查每条消息确定对消息进行哪些处理工作。将消息发送到窗口过程的进程称作“消息泵”。消息泵位于WinMain()函数中二WinMain是应用程序的入口点类似于C#中的Main方法。消息有两种类型系统定义的消息和应用程序定义的消息。系统定义的消息是系统预定义的消息。应用程序定义的消息当然由应用程序定义。为了标示消息有四个参数与他一起发送 1.窗口句柄 2.消息标识符 3.两个消息参数值通常称作lParam和wParam 窗口句柄是一个long型的值用于操作系统标示特殊的窗口。所创建的每个窗口都有一个句柄与它相关联这种句柄有时称作hWnd。hWnd是在创建该窗口时由系统产生的只要该窗口不被销毁它就保持为常量该消息所发送的句柄是该消息窗口的句柄。 消息标识符是一个标识消息内同的指定变量。所处理的常见消息是WM_PAINT消息。这是一个系统定义的消息告诉该窗口它要重新绘制其自身。系统定义的消息分为30个不同的类别。每个类别都是由该消息的两个或者三个字符前缀定义的。就WM_PAINT消息而言WM表示普通的窗口消息。其他类别包括用于编辑控件的EM、用于常用对话框的CDM一集用于选项卡空间的TCM。每个消息标识符都是有一个在Windows SDK 中定义的相应符号标识符。 lParam和wParam这两个消息参数几乎可以包含任何事物。他们可以包括位标志、整型值、对象引用、结构引用、对于回调函数的引用等。如果消息不使用参数一般就将其设置为null。 转载于:https://www.cnblogs.com/dwlsxj/archive/2013/03/22/Winform.html