基于对话框的程序,托盘右击出来弹出菜单下面是动态修改菜单文字的程序段
CMenu* pMenu = menu.GetSubMenu(0);
if(m_IsWorking)
{
   pMenu->ModifyMenuA(1, MF_BYPOSITION|MF_STRING, 0, "停止监视");
}
else
{
   pMenu->ModifyMenuA(1, MF_BYPOSITION|MF_STRING, 0, "启动监视");
}
修改后菜单是变了,可再次点击的时候不响应消息了,这是怎么会事?Google了半天也没找到解决办法,找CSDN的高手给解决一下,谢谢!

解决方案 »

  1.   

    ModifyMenu第3个参数你应该给出正确的菜单ID。
      

  2.   

    看事件的响应与菜单的ID号是否有关.修改过后ID号也变了???
      

  3.   

    怎么解决的,我也遇到这个问题了?for(int i=0;i<sub.GetMenuItemCount();i++)
        b=sub.ModifyMenuW(i,MF_BYPOSITION|MF_OWNERDRAW,i);
    为什么我这样修改之后,有几个菜单点一下程序就退出了,而且消息处理过程里也进不去?