Windows程序采用如下图所示的事件驱动编程模型,应用程序通过处理操作系统发送来的消息来响应事件。事件可能是一次击键、鼠标单击或是要求窗口更新的命令以及其他事情。Windows程序的进入点是函数WinMain,但是大多数操作是在称为窗口过程的函数中进行的。窗口过程函数处理发送给窗口的消息。WinMain 函数创建该窗口并进入消息循环,即获取消息或将其调度给窗口过程。消息被检索之前处于消息队列中等待。一个典型的应用程序的绝大部分操作是在响应它收到的消息,除了等待下一个消息到达以外,它几乎什么也不做。
1.1.1消息
大多数消息的开始字符为“WM"并带有下划线,常用的Windows消息。
消息 | 发送的条件 |
WM_CHAR | 从键盘输入字符 |
WM_COMMAND | 用户选择菜单内的某项,或者控件给其父类发送了一个通知 |
WM_CREATE | 生成窗口 |
WM_DESTROY | 撤销窗口 |
WM_LBUTTONDOWN | 按下鼠标左键 |
WM_LBUTTONUP | 释放鼠标左键 |
WM_MOUSEMOVE | 移动鼠标指针 |
WM_PAINT | 窗口需要重新绘制 |
WM_QUIT | 应用程序将结束 |
WM_SIZE | 窗口尺寸被调整 |
消息以调用一个窗口的窗口过程的形式来表明自己的存在。与该调用相伴随的是4个输入参数:消息所指窗口的句柄、-个消息ID和两个名为wParam和 lParam 的32位参数。窗口句柄是一个唯一地标识窗口的32位值。在内部,该值引用一个数据结构,Windows 在其中存储着有关窗口的信息,例如窗口的大小,风格及其在屏幕上的位置。消息ID是用来标识消息类型的一个数值:WM_CREATE、WM_PAINT等等。wParam和lParam包含关于特定消息类型的信息。例如,当一个WM_LBUTTONDOWN消息到达时, wParam将保存--系列位标志以标识Ctrl和 Shift键以及鼠标按钮的状态。当鼠标单击发生时, lParam保存两个16位值来标识鼠标指针的位置。这些参数一起向窗口过程提供它所需要的处理WM_LBUTTON-DOWN消息的所有信息。
标签:窗口,鼠标,Windows,模型,编程,标识,Window,消息,WM From: https://www.cnblogs.com/HRDK-CADeveloper/p/16867679.html