Impostando il Flag creati dal proprietario

Nel file di definizione delle risorse dell'applicazione, è possibile definire una voce di menu creati dal proprietario. Invece, è necessario creare una nuova voce di menu o modificare uno esistente utilizzando il flag dal menu MFT_OWNERDRAW.

È possibile utilizzare la InsertMenuItem o SetMenuItemInfo funzione per specificare una voce di menu creati dal proprietario. Utilizzare InsertMenuItem per inserire una nuova voce nella posizione specificata nel menu o barra dei menu. Utilizzare SetMenuItemInfo per modificare il contenuto di un menu.

Quando si chiama queste due funzioni, è necessario specificare l'indirizzo di una struttura MENUITEMINFO , dando le proprietà della nuova voce di menu o le proprietà che si desidera modificare di un elemento esistente dal menu. Per rendere un elemento un creati dal proprietario voce, specificare il valore MIIM_TYPE per il membro fMask e il valore MFT_OWNERDRAW per il membro fType.

Impostando i membri appropriati della struttura MENUITEMINFO , è possibile associare un valore definito dall'applicazione, che si chiama dati dell'elemento, a ogni voce di menu. A tale scopo, specificare il valore MIIM_DATA per il membro fMask e il valore definito dall'applicazione per il membro dwItemData.

È possibile utilizzare i dati dell'elemento con qualsiasi tipo di voce di menu, ma è particolarmente utile per gli elementi creati dal proprietario. Si supponga ad esempio di che una struttura contiene informazioni utilizzate per disegnare una voce di menu. Un'applicazione può utilizzare i dati dell'elemento per una voce di menu per memorizzare un puntatore alla struttura. I dati dell'elemento viene inviati alla finestra proprietaria del menu con i messaggi WM_MEASUREITEM e WM_DRAWITEM . Per recuperare i dati dell'elemento per un menu in qualsiasi momento, utilizzare la funzione GetMenuItemInfo.

Le applicazioni scritte per le versioni precedenti del sistema possono continuare a chiamare AppendMenu, InsertMenuo ModifyMenu per assegnare la bandiera MF_OWNERDRAW a una voce di menu creati dal proprietario.

Quando si chiama una qualsiasi di queste tre funzioni, è possibile passare un valore a 32 bit come parametro lpNewItem . Questo valore può rappresentare qualsiasi informazione che è significativo per l'applicazione, e che sarà disponibile per l'applicazione quando l'elemento deve essere visualizzato. Ad esempio, il valore potrebbe contenere un puntatore a una struttura; la struttura, a sua volta, potrebbe contenere una stringa di testo e l'handle per un tipo di carattere logico che l'applicazione utilizzerà per disegnare la stringa.

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index