首页 > 编程语言 >Window编程模型

Window编程模型

时间:2022-11-07 22:26:01浏览次数:27  
标签:窗口 鼠标 Windows 模型 编程 标识 Window 消息 WM

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

相关文章

  • C++对象模型和this指针
    4.3C++对象模型和this指针this指针的本质是一个指针常量,和引用一样,不能够修改指向,但是可以修改值4.3.1成员变量和成员函数分开存储在C++中,类内的成员变量和成员函数分......
  • Windows API与MFC的关系
    Windows应用程序编程接口(WindowsApplicationProgrammingInterface),程序员想编写Windows平台上的软件,必须借助WindowsAPI,Win32API也就是MicrosoftWindows32位平台的应......
  • delphi D11编程语言手册 学习笔记
    ●P30:在声明一个函数或者过程时,在其上方用///或者{!  插入注释,在其它地方使用时,把鼠标悬停在这个函数或者过程上面,会显示出这些注释Delphi新注释更多请查......
  • 偷换windows窗口过程
      ​​Windowuser32子动态库控件封装和消息分发浅析​​ 这篇文章提到窗口程序在分发消息时会依次调用:UserCallWinProcCheckWow--->_InternalCallWinProc-->各个窗......
  • windbg调试窗口过程WindowProc(winxp 32bit)
      ollydbg在调试窗口程序方面做得很便捷,虽然windbg在这方面不如od,但通过命令的组合也能达到类似的效果。我借winxp的calc.exe为例来谈谈如何用windbg调试窗口过程。 ......
  • Java网络编程
    软件结构C/S结构:即Client/Server结构,指客户端和服务器结构。常见的有QQ、迅雷等。B/S结构:即Browser/Server结构,指浏览端和服务器结构。常见的有谷歌浏览器、火狐浏览器等......
  • Linux 挂载Windows共享文件夹和NAS存储
    summary:[Linux挂载共享存储]概述将Windows共享文件夹和NAS存储挂载至Linux。Linux系统环境:CentOS挂载共享存储查看外部主机共享了哪些目录smbclient-L//10.1......
  • windows防火墙支持FTP服务的设置方法
    2003server用于提供web和ftp服务,通过互联网用flashfxp实现远程上传网页。如果关闭防火墙,ftp上传下载正常,但启用windows防火墙后就不行,即使把web、ftp等服务列为例外也不行......
  • 网络IO模型之select基础
    思考:为什么线程开销会大一、IO有两种操作,同步IO和异步IO。    同步IO指的是,必须等待IO操作完成后,控制权才返回给用户进程。    异步IO指的是,无......
  • windows设备停用启动杂记
      公司(OEM厂商)的电脑升级到win10RS2RTM后,发现有部分MSinbox驱动在电源事件后会出现黄标的现象(ErrorCode=43--QueryRemove失败)甚至driverlost。MS虽然承认是他们......