在VC的函数参数中常出现WPARAM和LPARAM,这两个有什么特殊意义么?它们的含义是不是要事先定义?

WPARAM和LPARAM一般在消息里面用的很多,其实没有特殊的含义的。    是两普通的变量 。

是怎样通过wParam,lParam传参数的呢?有时候表示点的坐标,有时表示控件的ID, 是不是事先定义好的?

WPARAM 是32位无符号数,LPARAM ==long           是的,针对不同消息,wParam,lParam代表不同意义

一般情况下,你通过消息机制进行通信的话,lparam和wparam可以用来传递你的参数,比如数据的指针和数据的长度等等!

在Win32中,wParam lParam是用来传递消息数据的最常用的手段.   比如,对按键消息来说,鼠标的X和Y的坐标被压缩进lParam中对MFC来说,消息可以用多样的类型参数来传递,对用户自定义消息来说,只能用wParam和lParam来传递。

param是parameter的意思   wParam和lParam都作为函数的参数   只不过后者是16位,前者在win16中是16位,在win32中是32位    在windef.h中,有他们的定义 如下: 
typedef UINT WPARAM; 
typedef LONG LPARAM;

在Win32 SDK中消息本身是作为一个结构体记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。这个记录类型叫做MSG,它在window中是这样声明的: 
typedef struct tagMSG { // msg 
HWND hwnd; //窗口句柄 
UINT message; //消息常量标识符 
WPARAM wParam; //32位消息的特定附加信息,具体表示什么处决于message 
LPARAM lParam; //32位消息的特定附加信息,具体表示什么处决于message 
DWORD time; //消息创建时的时间 
POINT pt; //消息创建时的鼠标位置 
} MSG;

hwnd 接收消息的32位窗口句柄。窗口可以是任何类型的屏幕对象, 因为Win32能够维护大多数可视对象的句柄(窗口、对话框、按钮、编辑框等)。 
message 用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量。 
wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。 
lParam 通常是一个指向内存中数据的指针。

由于wParam,lParam和指针都是32位的,需要时可以强制类型转换。具体表示什么,与message相关,他们是事先定义好的。 如果自定义消息:#define WM_MYMESSAGE WM_USER+100,需确定wParam,lParam的意义   (假设wParam=0时发送数据,wParam=1时接收数据,lParam为CMyClass* 指针,指向一个CMyClass对象,准备要发送的数据或接收数据 发送WM_MYMESSAGE时 SendMessage(hwnd,WM_MYMESSAGE,0,pMyClassObject)   接收消息的窗口,接收WM_MYMESSAGE中(CMyClass*)lParam参数即pMyClassObject传过来的数据

关于wParam和lParam相关推荐

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

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

  2. WPARAM 与 LPARAM

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

  3. Wparam与Lparam的区别(转)

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

  4. WPARAM 与 LPARAM 参数的解析 [C#、WinAPI]

    先略谈一下什么是WPARAM 与 LPARAM 参数: 在我们的程序和WindowAPI打交道时,特别是在处理鼠标键盘消息时,WPARAM 与 LPARAM 参数会经常出现.在Win32 API中,W ...

  5. about wParam and lParam

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

  6. WPARAM 与 LPARAM

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

  7. WPARAM与LPARAM 之区别

    WPARAM与LPARAM 之区别     在Win 3.x中,WPARAM是16位的,而LPARAM是32位的,两者有明显的区别.因为地址通常是32位的,所以LPARAM被用来传递地址,这个习惯在W ...

  8. wParam与 lParam

    根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型参数)的缩写. WPARAM:16位(双字节(在16位系统 ...

  9. windows编程中wParam和lParam消息

    windows编程中wParam和lParam消息 1.WM_PAINT消息,LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高. 2 滚动条WM_VSCROLL或WM ...

最新文章

  1. googleearthpro打开没有地球_人在月球上睡24小时, 相当于地球多少年? 科学家的回答出乎意料...
  2. Python 爬虫1——爬虫简述
  3. idea使用maven-archetype-webapp方式创建web工程
  4. linux系统更新字体,更换Linux下字体
  5. 2017-2018-2 20179306 《网络攻防技术》第十周作业
  6. c++ sleep函数_我们如何在C,C ++中控制/安排线程的执行?
  7. 计算机课的情感目标是什么意思,教案中情感目标是什么.doc
  8. Activity launchMode
  9. 2019中国基金业金融科技发展白皮书
  10. cmake install_CMAKE入门实战
  11. 一分钟教你搞定chrome的安装---redhat7.6如何安装谷歌浏览器
  12. PCB学习笔记——原理图编译与检查
  13. P2P网络与BitTorrent技术简介
  14. 关于心理的二十五种倾向(查理·芒格)-3
  15. 分布式专题(1)- 计算机网络
  16. 【四足机器人那些事】足端轨迹规划(一)
  17. 抖音爆火微信每日早安推送
  18. 购买内存需要注意看哪些
  19. java两个日期比较相等
  20. 用r求f分布的临界值

热门文章

  1. arcgis已知两点投影坐标求距离
  2. 【转】Wireshark网络抓包(二)——过滤器
  3. 【转】多线程之有状态对象和无状态对象
  4. Sharepoin学习笔记—架构系列—06 Sharepoint服务(Services)与服务应用程序框架(Service Application Framework) 1
  5. c# 自定义应用程序配置文件(app.config)
  6. Ubuntu下安装Chrome浏览器的两个方法
  7. java单例模式(饿汉式和懒汉式的几种不同写法)
  8. REVERSE-PRACTICE-CTFSHOW-5
  9. CCIE-LAB-第十四篇-PIM Sparst+IGMP
  10. 【HDU - 5883】The Best Path(判断欧拉回路)