我的菜单项的ID为ID_PLAY,我想在程序的某个位置响应ID_PLAY的UPDATE_COMMAND_UI消息。我的SendMessge()函数该怎么写?

解决方案 »

  1.   

    你是想主动去更新你的菜单项还是想在更新菜单项时去完成其它工作。
    如果是前者,你根本就不用去发送消息!!系统会在OnIdle里面发送UPDATE_COMMAND_UI消息来主动更新界面。
      

  2.   

    老兄,不要激动。
    我要的是前者,你说的很对,可是,我的程序比较忙,在pCmdUI->Enable(XXX)的XXX改变时,不能够及时显示菜单的可用状态,所以我想主动刷新菜单项。
    道理如:如果程序比较忙的时候,用Invalidate();不能及时刷新,而要用SendMessage(WM_PAINT,NULL,NULL);因为我不想排队
      

  3.   

    一样的,你SendMessage也是在消息队列中加入一项,也要排队,不同的是Invalidate做得事情多一些。如果你想改变菜单中一项是否可用,直接得到他的CWnd,然后CWnd::EnableWindow()就是了。