Re: Удаление\добавлени из попап меню елемента
От: softwarium  
Дата: 29.04.04 15:37
Оценка:
Потанцевал с бубном поплотнее насел на групсы. Зделал вызов 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"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.