Funzione AppendMenuA (winuser.h)

Aggiunge una nuova voce alla fine della barra dei menu specificata, menu a discesa, sottomenu o menu di scelta rapida. È possibile usare questa funzione per specificare il contenuto, l'aspetto e il comportamento della voce di menu.

Sintassi

BOOL AppendMenuA(
  [in]           HMENU    hMenu,
  [in]           UINT     uFlags,
  [in]           UINT_PTR uIDNewItem,
  [in, optional] LPCSTR   lpNewItem
);

Parametri

[in] hMenu

Tipo: HMENU

Handle per la barra dei menu, il menu a discesa, il sottomenu o il menu di scelta rapida da modificare.

[in] uFlags

Tipo: UINT

Controlla l'aspetto e il comportamento della nuova voce di menu. Questo parametro può essere una combinazione dei valori seguenti.

Valore Significato
MF_BITMAP
0x00000004L
Usa una bitmap come voce di menu. Il parametro lpNewItem contiene un handle per la bitmap.
MF_CHECKED
0x00000008L
Posiziona un segno di spunta accanto alla voce di menu. Se l'applicazione fornisce bitmap con segno di spunta (vedere SetMenuItemBitmaps, questo flag visualizza la bitmap del segno di spunta accanto alla voce di menu.
MF_DISABLED
0x00000002L
Disabilita la voce di menu in modo che non possa essere selezionata, ma il flag non lo grigia.
MF_ENABLED
0x0000000L
Abilita la voce di menu in modo che possa essere selezionata e la ripristina dallo stato grigio.
MF_GRAYED
0x00000001L
Disabilita la voce di menu e la grigio in modo che non possa essere selezionata.
MF_MENUBARBREAK
0x00000020L
Funziona come il flag MF_MENUBREAK per una barra dei menu. Per un menu a discesa, un sottomenu o un menu di scelta rapida, la nuova colonna è separata dalla colonna precedente in base a una linea verticale.
MF_MENUBREAK
0x0000040L
Inserisce l'elemento in una nuova riga (per una barra dei menu) o in una nuova colonna (per un menu a discesa, un sottomenu o un menu di scelta rapida) senza separare le colonne.
MF_OWNERDRAW
0x00000100L
Specifica che l'elemento è un elemento disegnato dal proprietario. Prima che il menu venga visualizzato per la prima volta, la finestra proprietaria del menu riceve un messaggio WM_MEASUREITEM per recuperare la larghezza e l'altezza della voce di menu. Il messaggio WM_DRAWITEM viene quindi inviato alla routine della finestra del proprietario ogni volta che è necessario aggiornare l'aspetto della voce di menu.
MF_POPUP
0x00000010L
Specifica che la voce di menu apre un menu a discesa o un sottomenu. Il parametro uIDNewItem consente di specificare un handle per il menu a discesa o il sottomenu. Questo flag viene usato per aggiungere un nome di menu a una barra dei menu o una voce di menu che apre un sottomenu a un menu a discesa, un sottomenu o un menu di scelta rapida.
MF_SEPARATOR
0x00000800L
Disegna una linea di divisione orizzontale. Questo flag viene usato solo in un menu a discesa, in un sottomenu o in un menu di scelta rapida. La riga non può essere disattivata, disabilitata o evidenziata. I parametri lpNewItem e uIDNewItem vengono ignorati.
MF_STRING
0x0000000L
Specifica che la voce di menu è una stringa di testo; il parametro lpNewItem è un puntatore alla stringa.
MF_UNCHECKED
0x0000000L
Non posiziona un segno di spunta accanto all'elemento (impostazione predefinita). Se l'applicazione fornisce bitmap con segno di spunta (vedere SetMenuItemBitmaps), questo flag visualizza la bitmap deselezionata accanto alla voce di menu.

[in] uIDNewItem

Tipo: UINT_PTR

Identificatore della nuova voce di menu o, se il parametro uFlags è impostato su MF_POPUP, un handle per il menu a discesa o il sottomenu.

[in, optional] lpNewItem

Tipo: LPCTSTR

Contenuto della nuova voce di menu. L'interpretazione di lpNewItem dipende dal fatto che il parametro uFlags includa i valori seguenti.

Valore Significato
MF_BITMAP
0x00000004L
Contiene un handle bitmap.
MF_OWNERDRAW
0x00000100L
Contiene un valore fornito dall'applicazione che può essere utilizzato per mantenere dati aggiuntivi correlati alla voce di menu. Il valore si trova nel membro itemData della struttura a cui punta il parametro lParam del messaggio WM_MEASUREITEM o WM_DRAWITEM inviato quando viene creato il menu o ne viene aggiornato l'aspetto.
MF_STRING
0x0000000L
Contiene un puntatore a una stringa con terminazione Null.

Valore restituito

Tipo: BOOL

Se la funzione ha esito positivo, il valore restituito è diverso da zero. Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

L'applicazione deve chiamare la funzione DrawMenuBar ogni volta che viene modificato un menu, indipendentemente dal fatto che il menu si trova in una finestra visualizzata.

Per ottenere i tasti di scelta rapida da usare con le voci di menu bitmap o disegnate dal proprietario, il proprietario del menu deve elaborare il messaggio di WM_MENUCHAR . Per altre informazioni, vedere Menu creati dal proprietario e il messaggio WM_MENUCHAR.

Non è possibile usare insieme i gruppi di flag seguenti:

  • MF_BITMAP, MF_STRING e MF_OWNERDRAW
  • MF_CHECKED e MF_UNCHECKED
  • MF_DISABLED, MF_ENABLED e MF_GRAYED
  • MF_MENUBARBREAK e MF_MENUBREAK

Esempio

Per un esempio, vedere Aggiunta di linee e grafici a un menu.

Nota

L'intestazione winuser.h definisce AppendMenu come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll
Set di API ext-ms-win-ntuser-menu-l1-1-0 (introdotto in Windows 8)

Vedi anche

Informazioni concettuali

CreateMenu

DeleteMenu

DestroyMenu

DrawMenuBar

InsertMenu

InsertMenuItem

Menu

ModifyMenu

Riferimento

RemoveMenu

SetMenuItemBitmaps