我用函数Shell_NotifyIcon()做了一个托盘,自定义的消息UM_SHOWTASK,其显现函数为
OnShowTask(WPARAM wParam,LPARAM lParam)
{
 .....
  
switch(lParam)
{
   case:WM_LBUTTONDOWM
   ......
   break;  
 ..........
}
AfxMessageBox("ShowTask");
}
现在我的问题是:我的程序为什么不能进入switch(){........}中去,debug后参数lParam=0;但能运行到AfxMessageBox("ShowTask");,这是为什么?我移动鼠标到托盘图标,就有对话框弹出,但就是进不到switch中!

解决方案 »

  1.   

    OnShowTask(WPARAM wParam,LPARAM lParam)
    {
     .....
      
    switch((UINT)lParam)
    {
       case:WM_LBUTTONDOWM
       ......
       break;  
     ..........
    }
    AfxMessageBox("ShowTask");
    }
      

  2.   

    同意papaya_stone(^_^)shentong(^_^) 的观点
    switch好像只能接INT,UINT,CHAR之类的
      

  3.   

    增加一个
    case WM_MOUSEMOVE:
      XXXXXX;
    到你的程序switch里面,应该有没问题的
      

  4.   

    我用了switch((UINT)lParam),但还是进不去!如果连switch都进不去,就不能处理处理鼠标消息了!谁能告诉我原因?高手指点!
      

  5.   

    debug后参数lParam=0;_______________
    WM_LBUTTONDOWM...等等不可能是 0 , 所以进不去.
      

  6.   

    你发消息时,LPARAM参数肯定是错了.
    OnShowTask(WPARAM wParam,LPARAM lParam)
    {
     .....
      
    switch(lParam)//LPARAM = 0  --
    {                             |   
       case:WM_LBUTTONDOWM        |
       ......                     |
       break;                     |
     ..........                   | 
    }                             |
    AfxMessageBox("ShowTask");<---- //直接就到这里了.
    }
      

  7.   

    我是想问为什么我的参数lParam=0?难道函数没有收到鼠标消息吗?如果真是这样的话,为什么OnShowTask(WPARAM wParam,LPARAM lParam)有执行了呢?
      

  8.   

    自定义的消息UM_SHOWTASK怎么发出的.
    你SendMessage(hWnd,UM_SHOWTASK,0,0)???
      

  9.   

    那就要看你的TRAY ICON是不是正确设置的了 .