我想在menu弹出的时候改变菜单中的内容,在 WM_ENTERMENULOOP 中处理是否合适?
- C/C++ code
MENUITEMINFO info = {0}; info.cbSize = sizeof(MENUITEMINFO); info.fMask = MIIM_TYPE; info.fType = MFT_STRING; //info.cch = 126; //info.dwTypeData = p; //::GetMenuItemInfo(g_hMenu,ID_MENU_CONTROL,false,&info); if(g_mediaplay == WMP_STATUS_STOPPED || g_mediaplay == WMP_STATUS_PAUSED) { info.cch = wcslen(play)+1; info.dwTypeData = play; } else if(g_mediaplay == WMP_STATUS_PLAYING) { info.cch = wcslen(stop)+1; info.dwTypeData = stop; }
我的代码
发现的问题:菜单ID_MENU_CONTROL内容设置成功,但是菜单中的其他ITEM的内容变成了空白
------解决方案--------------------
在WM_INITMENUPOPUP消息里处理,SetMenuItemInfo改变menu item的text
------解决方案--------------------
SetMenuItemInfo,那个MENUID是改不了的。TEXT能变