这两个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。
这只是菜单和加速键的定义。其他的消息可能与此不同,具体查资料吧。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。