我的一个小程序,最小化时变为右下角的托盘图标,在图标上点右键可以弹出一个菜单,但是如果不选择其中任何一项,鼠标在桌面上或者其他应用程序界面上单击,那个右键菜单根本不消失,弄得非要选择一项不可.那位朋友告诉我怎么解决?

解决方案 »

  1.   

    试试:http://218.56.11.178:8020/web/index.aspx-》下载基地-》控件-界面-》TrayBarIcon托盘控件
      

  2.   

    你弹出右键是不是捕获了那个Icon的MI_ICONEVENT消息呢?我想你同样可以截获WM_EXIT消息来隐藏菜单
      

  3.   

    怎么隐藏啊?没人可以帮我吗?
    case msg.lParam of
    WM_LBUTTONDOWN:
    begin
    //鼠标左键被按下
    end;
    WM_RBUTTONDOWN:
    begin
    //鼠标右键被按下
            popupMenu1.Popup(pt.x,pt.Y);
    end;
    end;
      

  4.   

    这个问题我几年前也遇到了,办法很简单  Application.BringToFront;  // 在弹出菜单前,加上这句
      popupMenu1.Popup(pt.x,pt.Y);因为菜单只有在应用程序从前台到后台才会自己消失,如果你的程序一直在后台,应用程序没办法给菜单消息让他消失。
      

  5.   

    在你popup之前加上
      SetForegroundWindow(Application.Handle);
      application.ProcessMessages;
      

  6.   

    多谢两位,终于解决了.至于为什么给的分数不相等.pazee(耙子) 的办法在我的程序运行时可以用,但是当程序最小化变为托盘处的图标时仍然不能解决问题. hkbarton(宁静至远||淡泊明志) 的办法就可以.:)