先略谈一下什么是WPARAM 与 LPARAM 参数:

在我们的程序和WindowAPI打交道时,特别是在处理鼠标键盘消息时,WPARAM 与 LPARAM 参数会经常出现。在Win32 API中,WPARAM和LPARAM都是32位,所以在数据类型上没有什么本质的区别。
但是对于不同的WinAPI,WPARAM 与 LPARAM 参数被承载者不同的含义。WPARAM的值及格式取决于主要的事件消息类型。在不同的情况下,WPARAM变元可能传输一个坐标点对,使用低字值标识次要的消息类型,提供某些其他的数据类型,或被完全忽略。在很多情况下,WPARAM值将被看成两个独立的字值,分别具有不同的功能。LPARAM的值和意思取决于主事件消息类型。在不同的情况下,LPARAM变元可能提供一个字符串或记录结构的指针,分解为一组字、字节或标志值,或者往往完全没有用。
Windows的消息必须参考帮助文件才能知道具体的含义。如果是你定义的消息,愿意怎么使这两个参数都行。但是习惯上,我们愿意使用LPARAM传递地址,而WPARAM传递其他参数。
下面是microsoft windows内部常见用法:
    根据消息类型:

  ------WM_PAINT,WM_COMMAND等:
                       LOWORD(wParam): 子窗口ID 
                       HIWORD(wParam):  通知码(告诉父窗口到底发生了什么变化,通知码和控件的类型以及事件相关,系统对每一类控件的每一个事件的通知码都有明确的定义,用一个系统整常量来表示)
                                lParam: 子窗口句柄    
   ------WM_LBUTTONDOWN,WM_MOUSEMOVE,WM_LBUTTONUP等:
           LOWORD(lParam):坐标的x值

HIWORD(lParam):坐标的y值

然后是常见的C#版的WPARAM 与 LPARAM 参数的解析函数

public static ushort LOWORD(uint value)
{
return (ushort)(value & 0xFFFF);
}
public static ushort HIWORD(uint value)
{
return (ushort)(value >> 16);
}
public static byte LOWBYTE(ushort value)
{
return (byte)(value & 0xFF);
}
public static byte HIGHBYTE(ushort value)
{
return (byte)(value >> 8);
} 

WPARAM 与 LPARAM 参数的解析 [C#、WinAPI]相关推荐

  1. wParam和lParam参数

    1 WM_PAINT消息,LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高 2 滚动条WM_VSCROLL或WM_HSCROLL消息,LOWORD(wParam)指出 ...

  2. wParam和lParam两个参数到底是什么意思?

    在Windows的消息函数中,有两个非常熟悉的参数:wParam,lParam. 这两个参数的字面意义对于现在的程序来说已经不重要了,因为它是16位系统的产物,为了保持程序的可移植性,就将它保存了下来 ...

  3. Windows程序设计——两个重要的参数wParam和lParam

    windows的消息具有以下两个参数: (1)字参数(wParam) (2)长参数(lParam) 字参数和长参数都是32位整数,用于提供消息的附带消息,是消息传递过程中参数的载体.附加信息的消息号取 ...

  4. 关于wParam和lParam

    在VC的函数参数中常出现WPARAM和LPARAM,这两个有什么特殊意义么?它们的含义是不是要事先定义? WPARAM和LPARAM一般在消息里面用的很多,其实没有特殊的含义的.    是两普通的变量 ...

  5. WPARAM 与 LPARAM

    WPARAM LPARAM2008-09-03 17:25根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型 ...

  6. Wparam与Lparam的区别(转)

    Wparam与Lparam的区别 在Win32 SDK中消息本身是作为一个结构体记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息.这个记录类型叫做MSG,它在window中是这样声明的: ...

  7. about wParam and lParam

    这两个是Win16系统遗留下来的产物了 在Win16API中WndProc有两个参数 一个是WORD类型的16位整型变量 另一个是LONG类型的32位整型变量, 因此根据匈牙利命名法,16位的变量就被 ...

  8. wParam和lParam消息

    1 WM_PAINT消息,LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高       2 滚动条WM_VSCROLL或WM_HSCROLL消息,LOWORD(wPa ...

  9. WPARAM 与 LPARAM

    WPARAM LPARAM2008-09-03 17:25根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型 ...

最新文章

  1. 跳跃游戏(判断是否可以跳到最后一个下标)
  2. Java静态初始化,实例初始化以及构造方法
  3. 安防工程商必须知道的PoE供电真相
  4. iOS学习7:iOS沙盒(sandBox)机制(一)之获取沙盒路径及目录说明(转)
  5. 分库分表 springboot+dubbo+mybatisPlus+shardingSphere
  6. nginx 反向代理+ip智能解析
  7. figma下载_如何在Figma中创建逼真的3D对象
  8. 关于Actionscript 3中给Flash传参数方法(一)
  9. Weak References 和 Soft reference
  10. java默认virtual_mac jdk配置(系统默认or自己配置)
  11. 网易云音乐显示服务器发生错误,网易云音乐加载失败怎么回事 网易云音乐出现加载失败的有效解决方法...
  12. 台式机装苹果系统_苹果电脑macbook装windows系统U盘启动的详细方法
  13. 深度生成模型重塑药物研发【Cell子刊综述】
  14. android webview html 字体大小,Android webview设置字体大小,适配屏幕,夜间模式
  15. 用友NC平台之基本概念解析(一)
  16. 微信订阅号推广只要这一个标题就够了!
  17. printf颜色控制c语言,C语言中控制printf的打印颜色实例及vt100的控制符文档
  18. qt源码学习---QMetaObject(二)
  19. 几类自适应波束形成算法推导
  20. 如何搭建vue脚手架

热门文章

  1. 实际工作开发中C语言工程的目录结构分析
  2. chromium内核edge浏览器开启多线程下载
  3. 数据库——MySQL概述
  4. 基础2-用卷积神经网络进行颅内和头皮脑电图数据分析的广义癫痫预测
  5. 将文件复制到FTP服务器时发生错误。 的解决办法
  6. 18 禁警告!这个工具教你涂鸦画丁丁,数据还开源了
  7. 端口隔离的原理与配置
  8. 【2023秋招面经】深信服 前端 一面(1h)
  9. scrapy学习笔记(三)-关于动态加载网页的爬取(序)
  10. vue指令模式 添加埋点