这两个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。 这只是菜单和加速键的定义。其他的消息可能与此不同,具体查资料吧。 |
|