Struttura MENUITEMINFOW (winuser.h)

Contiene informazioni su una voce di menu.

Sintassi

typedef struct tagMENUITEMINFOW {
  UINT      cbSize;
  UINT      fMask;
  UINT      fType;
  UINT      fState;
  UINT      wID;
  HMENU     hSubMenu;
  HBITMAP   hbmpChecked;
  HBITMAP   hbmpUnchecked;
  ULONG_PTR dwItemData;
  LPWSTR    dwTypeData;
  UINT      cch;
  HBITMAP   hbmpItem;
} MENUITEMINFOW, *LPMENUITEMINFOW;

Members

cbSize

Tipo: UINT

Dimensioni della struttura, in byte. Il chiamante deve impostare questo membro su sizeof(MENUITEMINFO).

fMask

Tipo: UINT

Indica i membri da recuperare o impostare. Questo membro può essere uno o più dei valori seguenti.

Valore Significato
MIIM_BITMAP
0x00000080
Recupera o imposta il membro hbmpItem .
MIIM_CHECKMARKS
0x00000008
Recupera o imposta i membri hbmpChecked e hbmpUnchecked .
MIIM_DATA
0x00000020
Recupera o imposta il membro dwItemData .
MIIM_FTYPE
0x00000100
Recupera o imposta il membro fType .
MIIM_ID
0x00000002
Recupera o imposta il membro wID .
MIIM_STATE
0x00000001
Recupera o imposta il membro fState .
MIIM_STRING
0x00000040
Recupera o imposta il membro dwTypeData .
MIIM_SUBMENU
0x00000004
Recupera o imposta il membro hSubMenu .
MIIM_TYPE
0x00000010
Recupera o imposta i membri fType e dwTypeData .

MIIM_TYPE viene sostituito da MIIM_BITMAP, MIIM_FTYPE e MIIM_STRING.

fType

Tipo: UINT

Tipo di voce di menu. Questo membro può essere uno o più dei valori seguenti.

I valori MFT_BITMAP, MFT_SEPARATOR e MFT_STRING non possono essere combinati tra loro. Impostare fMask su MIIM_TYPE per usare fType.

fType viene usato solo se fMask ha un valore di MIIM_FTYPE.

Valore Significato
MFT_BITMAP
0x00000004L
Visualizza la voce di menu utilizzando una bitmap. La parola in ordine basso del membro dwTypeData è l'handle bitmap e il membro cch viene ignorato.

MFT_BITMAP viene sostituito da MIIM_BITMAP e hbmpItem.

MFT_MENUBARBREAK
0x00000020L
Places la voce di menu 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). Per un menu a discesa, un sottomenu o un menu di scelta rapida, una linea verticale separa la nuova colonna dal vecchio.
MFT_MENUBREAK
0x0000040L
Places la voce di menu 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). Per un menu a discesa, un sottomenu o un menu di scelta rapida, le colonne non sono separate da una linea verticale.
MFT_OWNERDRAW
0x00000100L
Assegna la responsabilità di disegnare la voce di menu alla finestra proprietaria del menu. La finestra riceve un messaggio WM_MEASUREITEM prima che il menu venga visualizzato per la prima volta e un messaggio WM_DRAWITEM ogni volta che l'aspetto della voce di menu deve essere aggiornato. Se questo valore viene specificato, il membro dwTypeData contiene un valore definito dall'applicazione.
MFT_RADIOCHECK
0x00000200L
Visualizza le voci di menu selezionate utilizzando un segno di opzione anziché un segno di spunta se il membro hbmpChecked è NULL.
MFT_RIGHTJUSTIFY
0x00004000L
Giustifica la voce di menu e tutti gli elementi successivi. Questo valore è valido solo se la voce di menu si trova in una barra dei menu.
MFT_RIGHTORDER
0x00002000L
Specifica che i menu a catena da destra a sinistra (il valore predefinito è da sinistra a destra). Viene usato per supportare lingue da destra a sinistra, ad esempio arabo ed ebraico.
MFT_SEPARATOR
0x00000800L
Specifica che la voce di menu è un separatore. Un separatore di voci di menu viene visualizzato come linea di divisione orizzontale. I membri dwTypeData e cch vengono ignorati. Questo valore è valido solo in un menu a discesa, in un sottomenu o in un menu di scelta rapida.
MFT_STRING
0x0000000L
Visualizza la voce di menu utilizzando una stringa di testo. Il membro dwTypeData è il puntatore a una stringa con terminazione Null e il membro cch è la lunghezza della stringa.

MFT_STRING viene sostituito da MIIM_STRING.

fState

Tipo: UINT

Stato della voce di menu. Questo membro può essere uno o più di questi valori. Impostare fMask su MIIM_STATE per usare fState.

Valore Significato
MFS_CHECKED
0x00000008L
Controlla la voce di menu. Per altre informazioni sulle voci di menu selezionate, vedere il membro hbmpChecked .
MFS_DEFAULT
0x00001000L
Specifica che la voce di menu è l'impostazione predefinita. Un menu può contenere una sola voce di menu predefinita, visualizzata in grassetto.
MFS_DISABLED
0x00000003L
Disabilita la voce di menu e la grigio in modo che non possa essere selezionata. Equivale a MFS_GRAYED.
MFS_ENABLED
0x0000000L
Abilita la voce di menu in modo che possa essere selezionata. Questo è lo stato predefinito.
MFS_GRAYED
0x00000003L
Disabilita la voce di menu e la grigio in modo che non possa essere selezionata. Equivale a MFS_DISABLED.
MFS_HILITE
0x0000080L
Evidenzia la voce di menu.
MFS_UNCHECKED
0x0000000L
Deseleziona la voce di menu. Per altre informazioni sulle voci di menu non crittografate, vedere il membro hbmpChecked .
MFS_UNHILITE
0x0000000L
Rimuove l'evidenziazione dalla voce di menu. Questo è lo stato predefinito.

wID

Tipo: UINT

Valore definito dall'applicazione che identifica la voce di menu. Impostare fMask su MIIM_ID per usare wID.

hSubMenu

Tipo: HMENU

Handle per il menu a discesa o il sottomenu associato alla voce di menu. Se la voce di menu non è una voce che apre un menu a discesa o un sottomenu, questo membro è NULL. Impostare fMask su MIIM_SUBMENU per usare hSubMenu.

hbmpChecked

Tipo: HBITMAP

Handle per la bitmap da visualizzare accanto all'elemento, se selezionato. Se questo membro è NULL, viene usata una bitmap predefinita. Se viene specificato il valore di tipo MFT_RADIOCHECK , la bitmap predefinita è un punto elenco. In caso contrario, è un segno di spunta. Impostare fMask su MIIM_CHECKMARKS per usare hbmpChecked.

hbmpUnchecked

Tipo: HBITMAP

Handle per la bitmap da visualizzare accanto all'elemento, se non è selezionato. Se questo membro è NULL, non viene usata alcuna bitmap. Impostare fMask su MIIM_CHECKMARKS per usare hbmpUnchecked.

dwItemData

Tipo: ULONG_PTR

Valore definito dall'applicazione associato alla voce di menu. Impostare fMask su MIIM_DATA per usare dwItemData.

dwTypeData

Tipo: LPTSTR

Contenuto della voce di menu. Il significato di questo membro dipende dal valore di fType e viene usato solo se il flag MIIM_TYPE è impostato nel membro fMask .

Per recuperare una voce di menu di tipo MFT_STRING, trovare prima le dimensioni della stringa impostando il membro dwTypeData di MENUITEMINFO su NULL e quindi chiamando GetMenuItemInfo. Il valore di cch+1 è la dimensione necessaria. Allocare quindi un buffer di questa dimensione, posizionare il puntatore al buffer in dwTypeData, incrementare cch e chiamare nuovamente GetMenuItemInfo per riempire il buffer con la stringa. Se la voce di menu recuperata è di un altro tipo, GetMenuItemInfo imposta il membro dwTypeData su un valore il cui tipo viene specificato dal membro fType .

Quando si usa con la funzione SetMenuItemInfo , questo membro deve contenere un valore il cui tipo è specificato dal membro fType .

dwTypeData viene usato solo se il flag MIIM_STRING è impostato nel membro fMask

cch

Tipo: UINT

Lunghezza del testo della voce di menu, in caratteri, quando vengono ricevute informazioni su una voce di menu del tipo di MFT_STRING . Tuttavia, cch viene usato solo se il flag MIIM_TYPE è impostato nel membro fMask e è zero in caso contrario. Inoltre, cch viene ignorato quando il contenuto di una voce di menu viene impostato chiamando SetMenuItemInfo.

Si noti che, prima di chiamare GetMenuItemInfo, l'applicazione deve impostare cch sulla lunghezza del buffer a cui punta il membro dwTypeData . Se la voce di menu recuperata è di tipo MFT_STRING (come indicato dal membro fType ), GetMenuItemInfo cambia cch alla lunghezza del testo della voce di menu. Se la voce di menu recuperata è di un altro tipo, GetMenuItemInfo imposta il campo cch su zero.

Il membro cch viene utilizzato quando il flag MIIM_STRING viene impostato nel membro fMask .

hbmpItem

Tipo: HBITMAP

Handle per la bitmap da visualizzare oppure può essere uno dei valori nella tabella seguente. Viene usato quando il flag MIIM_BITMAP viene impostato nel membro fMask .

Valore Significato
HBMMENU_CALLBACK
((HBITMAP) -1)
Bitmap disegnata dalla finestra proprietaria del menu. L'applicazione deve elaborare i messaggi WM_MEASUREITEM e WM_DRAWITEM .
HBMMENU_MBAR_CLOSE
((HBITMAP) 5)
Pulsante Chiudi per la barra dei menu.
HBMMENU_MBAR_CLOSE_D
((HBITMAP) 6)
Pulsante di chiusura disabilitato per la barra dei menu.
HBMMENU_MBAR_MINIMIZE
((HBITMAP) 3)
Pulsante Riduci a icona per la barra dei menu.
HBMMENU_MBAR_MINIMIZE_D
((HBITMAP) 7)
Pulsante Riduci a icona disabilitato per la barra dei menu.
HBMMENU_MBAR_RESTORE
((HBITMAP) 2)
Pulsante Ripristina per la barra dei menu.
HBMMENU_POPUP_CLOSE
((HBITMAP) 8)
Pulsante Chiudi per il sottomenu.
HBMMENU_POPUP_MAXIMIZE
((HBITMAP) 10)
Pulsante Ingrandisci per il sottomenu.
HBMMENU_POPUP_MINIMIZE
((HBITMAP) 11)
Pulsante Riduci a icona per il sottomenu.
HBMMENU_POPUP_RESTORE
((HBITMAP) 9)
Pulsante Ripristina per il sottomenu.
HBMMENU_SYSTEM
((HBITMAP) 1)
Icona di Windows o l'icona della finestra specificata in dwItemData.

Commenti

La struttura MENUITEMINFO viene utilizzata con le funzioni GetMenuItemInfo, InsertMenuItem e SetMenuItemInfo .

Il menu può visualizzare le voci usando testo, bitmap o entrambi.

Nota

L'intestazione winuser.h definisce MENUITEMINFO 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 funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione winuser.h (include Windows.h)

Vedi anche

Informazioni concettuali

GetMenuItemInfo

InsertMenuItem

Menu

Riferimento

SetMenuItemInfo

WM_DRAWITEM

WM_MEASUREITEM