MFC 如何修改MF_POPUP菜单项文本

         MFC 修改MF_POPUP菜单项文本的方法有点特别,记录下来备忘。

    CMenu* popup = m_menu.GetSubMenu(posTab);
	CMenu popupNew;
	popupNew.Attach(popup->m_hMenu);
	BOOL ret = m_menu.ModifyMenu(posTab, MF_BYPOSITION | MF_POPUP,
        (UINT_PTR)popupNew.m_hMenu, name);
	if (ret == false) {
		TRACE("ModifyMenu() fail<%d>\n",GetLastError());
	}
	popupNew.Detach();

        关键点是ModifyMenu()函数会把关联的下级菜单的句柄与菜单文本一起修改,因此需要把之前关联的下级菜单提取出来,调用ModifyMenu()把它放回去。

你可能感兴趣的:(VS工程,mfc,c++)