关于自定义消息和最小化时在状态栏单击图标怎样出现象金山词霸一样的菜单!

解决方案 »

  1.   

    1、在你的应用里放置一个PopupMenu,并添加好菜单项。2、声明一个拦截message的过程:
    procedure MyTray(var Msg: TMessage); message wygl_tray;3、实现该过程:
    procedure TForm.MyTray(var Msg: TMessage);
    var
      pt : TPoint;
    begin
      GetCursorPos(pt);
      case Msg.lParam of
        WM_LBUTTONDOWN :     //鼠标左键被按下,你想用左键则请注释掉后面的两行
             PopupMenu1.Popup(pt.x, pt.y);  
        WM_RBUTTONDOWN :     //鼠标右键被按下,你想用右键则请注释掉前面的两行
             PopupMenu1.Popup(pt.x,pt.y); 
        else                 //调用父类的WndProc方法处理其它消息
          inherited;
      end;
    end;
      

  2.   

    抱歉,忘了先声明消息常量,应放到最前面:
      
    const
      My_tray = WM_USER + 1;