CMenu::ModifyMenu
Modifica una voce di menu esistente nella posizione specificata da nPosition.
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL
);
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem,
const CBitmap* pBmp
);
Parametri
nPosition
Specifica la voce di menu da modificare. Il parametro nFlags può essere utilizzato per interpretare nPosition nei modi seguenti:nFlags
Interpretazione di nPosition
MF_BYCOMMAND
Specifica che il parametro fornisce l'id di comando voce di menu esistente. Questa è l'impostazione predefinita se non MF_BYCOMMAND né MF_BYPOSITION è impostato su.
MF_BYPOSITION
Specifica che il parametro fornisce la posizione della voce di menu esistente. Il primo elemento è la posizione 0.
nFlags
Specifica come nPosition viene interpretato e fornisce informazioni sulle modifiche da apportare alla voce di menu. Per un elenco di flag che possono essere impostati, vedere la funzione membro AppendMenu.nIDNewItem
Specifica l'id di comando voce di menu o modificata, se nFlags è impostato su MF_POPUP, l'handle del menu (HMENU) di un menu di scelta rapida. Il parametro nIDNewItem viene ignorato e non necessario) se nFlags è impostato su MF_SEPARATOR.lpszNewItem
Specifica il contenuto della nuova voce di menu. Il parametro nFlags può essere utilizzato per interpretare lpszNewItem nei modi seguenti:nFlags
Interpretazione di lpszNewItem
MF_OWNERDRAW
Contiene un valore a 32 bit applicazione fornito l'applicazione può utilizzare per gestire i dati aggiuntivi associati alla voce di menu. Questo valore a 32 bit è disponibile all'applicazione durante l'elaborazione MF_MEASUREITEM e MF_DRAWITEM.
MF_STRING
Contiene un puntatore lungo una stringa con terminazione null o a CString.
MF_SEPARATOR
Il parametro lpszNewItem viene ignorato e non necessario).
pBmp
Punta a CBitmap oggetto che verrà utilizzato come la voce di menu.
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario 0.
Note
L'applicazione specifica il nuovo stato della voce di menu impostando i valori in nFlags. Se questa funzione sostituisce un menu di scelta rapida associato alla voce di menu, elimina il menu di scelta rapida precedente e libera la memoria utilizzata dal menu di scelta rapida.
Quando nIDNewItem specifica un menu di scelta rapida, diventa parte del menu in cui viene inserita. Se il menu viene eliminato, il menu immesso viene distrutto. Un menu immesso deve essere rimosso da un oggetto CMenu per evitare il conflitto.
Ogni volta che un menu che si trova in una finestra viene modificato (se la finestra visualizzata), l'applicazione deve chiamare CWnd::DrawMenuBar. Per modificare gli attributi delle voci di menu esistenti, è molto più veloce utilizzare le funzioni membro EnableMenuItem e CheckMenuItem.
Esempio
Vedere l'esempio relativo CMenu::InsertMenu.
Requisiti
Header: afxwin.h