WPARAM与LPARAM的区别

简介: WPARAM与LPARAM的区别

WPARAM与LPARAM的区别。


具体是这么说:“在Win 3.x中,WPARAM是16位的,而LPARAM是32位的,两者有明显的区别。因为地址通常是32位的,所以LPARAM 被用来传递地址,这个习惯在Win32 API中仍然能够看到。在Win32 API中,WPARAM和LPARAM都是32位,所以没有什么本质的区 别。Windows的消息必须参考帮助文件才能知道具体的含义。如果是你定义的消息,愿意怎么使这两个参数都行。但是习惯上,我们愿意使用LPARAM传 递地址,而WPARAM传递其他参数。”


看一个例子就明白了:


程序代码


*在对话框中取出数据,并向其他窗口发送消息和数据,将数据指针作为一个参数发送 * /
void CTestDlg2: :OnCommBtn ( )
{
      char szOut [30 ] ;
      GetDlgItemText (IDC_OUT ,szOut ,30 ) ;
      m_pParent - >SendMessage (WM_DLG_NOTIFY , (WPARAM )szOut ) ;
}
/*在消息接收窗口中*/
/*映射消息处理函数*/
ON_MESSAGE (WM_DLG_NOTIFY ,OnDlgNotifyMsg )
/*在视图中绘制出字符串 m_szOut*/
void CMy53_s1View : :OnDraw (CDC * pDC )
{
      CMy53_s1Doc * pDoc = GetDocument ( ) ;
      ASSERT_VALID (pDoc ) ;
      // TODO: add draw code for native data here
      pDC - >TextOut (0 ,0 , "Display String" ) ;
      pDC - >TextOut (0 ,20 ,m_szOut ) ;
}
/*处理通知消息,保存信息并更新显示*/
LONG CMy53_s1View : :OnDlgNotifyMsg (WPARAM wP ,LPARAM lP )
{
      m_szOut = ( char * )wP ;
      Invalidate ( ) ;
      return 0 ;
}


一个字符串的地址通过WPARAM来标识,再通过Windows消息发送出去;之后在消息处理函数中WPARAM接受到的参数就是该地址,然后就可以对该地址进行操作了~~~


这是Windows消息机制中经常用到的两个data type,呵呵。

相关文章
|
2月前
|
XML 数据格式
Parameter ‘**‘ not found. Available parameters are [0, 1, param1, param2]解决办法
Parameter ‘**‘ not found. Available parameters are [0, 1, param1, param2]解决办法
87 0
|
前端开发 Java 数据安全/隐私保护
解决通过request.getParam()方法获取到的值为null的问题~
解决通过request.getParam()方法获取到的值为null的问题~
269 0
|
前端开发 Java API
@RequestParam怎么使用
@RequestParam怎么使用
RAM
RAM
100 0
RAM
|
SQL Java 数据库连接
Parameter ‘XXX‘ not found.Available parameters are [arg2, arg1, arg0, param3, param1, param2]
当SQl语句的占位符和映射接口方法的参数名不一致时,需要将某个参数强行注入到某个占位符变量上时,可以使用@Param这个注解来标注映射的关系(@Param(“占位符的参数名”) 数据类型 自己定义的参数名)
343 0
Parameter ‘XXX‘ not found.Available parameters are [arg2, arg1, arg0, param3, param1, param2]
|
开发工具 索引 Windows
Windows程序设计——两个重要的参数wParam和lParam
Windows程序设计——两个重要的参数wParam和lParam
1162 0
Windows程序设计——两个重要的参数wParam和lParam
@RequestParam,@PathParam,@PathVariable等注解区别(上)
@RequestParam,@PathParam,@PathVariable等注解区别
206 0
@RequestParam,@PathParam,@PathVariable等注解区别(上)
|
JSON Java 应用服务中间件
@RequestParam,@PathParam,@PathVariable等注解区别(下)
@RequestParam,@PathParam,@PathVariable等注解区别
272 0