我的menu只show出来了一个小竖条,但是代码中的MeasureItem和DrawItem的断点都没有触发。faint,是不是notifyicon给我的handler处理没了?请大家帮忙看看,谢谢!

解决方案 »

  1.   

    但是如果我把这个ownerdraw的menu,attach到form上,就没有问题的。为什么trayicon就不可以呢?
      

  2.   

    我给一个很简单的例子:private void menuItem1_MeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e)
    {
    e.ItemWidth = 120;
    e.ItemHeight = 20;
    }private void menuItem1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
    {
    Graphics g = e.Graphics;
    g.FillRectangle(Brushes.Red,e.Bounds);
    g.DrawString("hello!",SystemInformation.MenuFont,Brushes.Yellow,e.Bounds.X,e.Bounds.Y);
    }form上放一个trayicon,运行后,点右键,menuItem1是出不来的!(不要忘记把menuItem1设置为OwnerDraw=true)。但是同时你指定form1上面的ContextMenu就是这个contextmenu,那么在form上right click的时候,这段代码是可以运行的。faint,怎么回事呢?
      

  3.   

    用spy++看qq的菜单,没看出什么门道来,郁闷ing
      

  4.   

    是ms的bug,在2004中已经修改了。大家可以看这个kb:
    http://support.microsoft.com/?id=827043昨天夕夕公主帮我调试了好长时间这个问题,再次表示感谢,这分数就给他吧!