我在托盘程序中加了一个菜单,
鼠标右键出现(popup空件)
但,菜单出现后,我不选他,点击别的东西,菜单不能消失。
不象windows 托盘程序出现菜单后,一旦鼠标离开点击别的东西,他会自动消失
请问如何实现!??

解决方案 »

  1.   

    win 2000以后就是有这个问题,我也不知道如何解决。换到98下面就好了
      

  2.   

    GetCursorPos(Point);
    if IsIconIc(Application.Handle) then SetForegroundWindow(Application.Handle)
    else Application.BringToFront;
    FPopupMenu.Popup(Point.X,Point.Y);
    菜单消失是由其窗口主线程处理的,当你点击托盘图标后,菜单的拥有者也就是菜单的拥有窗口线程就变为后台线程,这时,如果不把窗口切换到前台线程,那么菜单就不会消失!
    上面代码要注意的是,不能只用SetForegroundWindow,否则,在窗口非最小化时菜单不会消失!
    上面代码在Win2000+Delphi6下测试通过!