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消息的所有信息。

 

 

posted on   HRDK  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义



点击右上角即可分享
微信分享提示