Потанцевал с бубном поплотнее насел на групсы. Зделал вызов RefreshMenu после удаления и добавления эелементов в попап меня вот код:
void CMyMenu::RefreshMenu()
{
EnumWindows(EnumWndProc, 0);
}
BOOL CALLBACK CMyMenu::EnumWndProc(HWND hWnd, LPARAM p)
{
DWORD dwCurrentProcId = GetCurrentProcessId();
DWORD dwWndProcId;
GetWindowThreadProcessId(hWnd, &dwWndProcId);
if (dwCurrentProcId == dwWndProcId)
{
char cn[1024] = {0};
GetClassName(hWnd, cn, 1024);
if (cn && strcmp(cn, "#32768")==0)
{
// можно и так ::InvalidateRect(hWnd, NULL, FALSE);
// но на медленых машина заметно перерисовывание
DrawMenuBar(hWnd);
}
}
return TRUE;
}
Этот заработ, но не везде, на 2000/XP/98 работает прекрасно

, а на 95 и NT ну никак не хочет

, а надо(

ну вот надо и все ), есть идеи ?
p.s. Для
Menu item или
pop-up Menu имя класа "#32768"