Mfc命令更新机制:
在应用程序中,菜单栏是一直要显示的,所以就要实时去更新它,显示它的即时状态(可用/不可用)。当我们要设置一个菜单不可用时,系统会发出一条消息WM_INITMENUPOPUP(可以理解为初始化菜单项弹出窗口消息) ,在此说明Mfc的命令更新仅适用于即弹出式菜单项(子菜单栏上的子菜单项),不能用于永久显示的菜单栏的菜单项(如上图所示);然后MFC的基类CFrameWnd接管这个消息,并且它创建一个CCmdUI对象与第一个菜单项相关联,调用一个成员函数DoUpdate()。这个函数发出CN_UPDATE_COMMAND_UI消息,这个消息带有一个CCmdUI类型的指针,它会去检测是否有接管这个消息的宏ON_UPDATE_COMMAND_UI,有就去调用对应的响应函数(即消息映射原理)进行处理,执行完成之后这个一开始创建的CCmdUI对象会与第二个菜单项相关联,执行同样的操作...依次下去。
菜单栏菜单项的ID与工具栏的ID