分享

系统消息中wParam,lParam 含义都是固定的好像一般wParam传个值lParam

 accesine 2005-07-31
这两个Param有什么区别?它们都各自收到什么样的消息???


具体要看所发送的消息,一些消息中这两个都是没有意义的阿


具体的可看MSDN。


不是收消息,是发消息时候带的额外信息,不同的消息有着不同的含义


兩个消息的傳遞參數唄


我照着例子写的一点程序
....
ON_MESSAGE(WM_TASKBARMINI, OnTaskBarMini)
....
LRESULT CMiniBarDlg::OnTaskBarMini(WPARAM wParam, LPARAM lParam )
{
UINTuMouseMsg = (UINT) lParam;
switch (uMouseMsg)
{
case WM_LBUTTONDOWN:
AfxMessageBox("TrayIcon");
break;
case WM_RBUTTONDOWN:
AfxMessageBox("TrayIcon R");
break;
default:
;
}
}
这是一个响应系统托盘的鼠标事件的小程序。
为什么 uMouseMsg 赋值为wParam就不行了??????
为什么一定要使用lParam????
这两个参数是从哪里传过来的????
就这些东西我实在搞不清~~~


系统消息中wParam,lParam 含义都是固定的
好像一般wParam传个值
lParam 传个指针
就是发送侧需要同时带给消息接受侧的额外的数据


针对不同的消息,有一些自己的含义


有没有搞的很清楚的朋友??讲讲~~~please


2个参数好办事嘛


根据消息的不同提供不同的值


我举个例子吧,也不知确切不确切,大家多包涵阿
   首先要说windows是消息驱动的系统,系统为每一个程序(应该说进程)建立一个消息队列。
   举我们选择菜单的例子,当选择了一个菜单项的时候,Windows向菜单所属的窗口发送WM_COMMAND消息;而用户按下了一个加速键的时候,windows向TranslateAccelerate函数指定的目标窗口发送WM_COMMAND消息。一般这两者对应的窗口都是主窗口,所以在主窗口中的窗口过程中集中处理WM_COMMAND消息,而不必考虑它究竟是菜单引发的还是加速键引发的。
  WM_COMMAND消息的两个参数是这样定义的:
  wParam的高位   =wNotifyCode       ;通知码
  wParam的低位   =wID               ;命令ID
  lParam = hwdCtl                   ;发送WM_COMMAND 消息的子窗口句柄,即谁发的该消息
  除了菜单和加速键,WM_COMMAND 消息也可以由其他子窗口引发,如主窗口中的按钮或工具栏,还有你提到的系统托盘的鼠标事件等等,lParam参数指定了引发消息的子窗口句柄,对于菜单和加速键引发的WM_COMMAND消息,lParam的值为0。wParam参数的低16位是命令ID,也就是资源脚本文件中菜单项的命令ID或加速键的命令ID,高16位是通知码,菜单消息的通知码是0,加速键消息的通知码为1。
  这只是菜单和加速键的定义。其他的消息可能与此不同,具体查资料吧。
  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多