Condividi tramite


Quando vengono chiamati i gestori aggiornamento

Si supponga che l'utente faccia clic sul mouse nel menu File, che genera un messaggio di WM_INITMENUPOPUP. Il meccanismo di aggiornamento del framework aggiorna collettivamente tutti gli elementi del menu File prima che il menu venga visualizzato dall'utente.

A tale scopo, il framework instrada i comandi di aggiornamento per tutte le voci di menu nel menu a comparsa lungo il routing dei comandi standard. Le destinazioni di comando nel routing hanno la possibilità di aggiornare tutte le voci di menu associando il comando di aggiornamento con una voce appropriata della mappa messaggi (del formato ON_UPDATE_COMMAND_UI) e chiamando una funzione "gestore di aggiornamento". Pertanto, per un menu con sei voci di menu, vengono inviati sei comandi di aggiornamento. Se esiste un gestore di aggiornamento per l'ID comando della voce di menu, viene chiamato per eseguire l'aggiornamento. In caso contrario, il framework verifica l'esistenza di un gestore per tale ID comando e abilita o disabilita la voce di menu in base alle esigenze.

Se il framework non trova una ON_UPDATE_COMMAND_UI voce durante il routing dei comandi, abilita automaticamente l'oggetto interfaccia utente se è presente una ON_COMMAND voce con lo stesso ID comando. In caso contrario, disabilita l'oggetto dell'interfaccia utente. Pertanto, per assicurarsi che un oggetto interfaccia utente sia abilitato, fornire un gestore per il comando generato dall'oggetto o fornire un gestore di aggiornamento per esso. Vedere la figura nell'argomento Oggetti interfaccia utente e ID comando.

È possibile disabilitare la disabilitazione predefinita degli oggetti dell'interfaccia utente. Per altre informazioni, vedere il membro m_bAutoMenuEnable della classe CFrameWnd nel riferimento MFC.

L'inizializzazione del menu è automatica nel framework, che si verifica quando l'applicazione riceve un messaggio di WM_INITMENUPOPUP. Durante il ciclo di inattività, il framework cerca i gestori di aggiornamento dei pulsanti nel routing dei comandi in modo analogo a quello dei menu.

Vedi anche

Procedura: Aggiornare oggetti dell'interfaccia utente