Funzione TrackPopupMenuEx (winuser.h)
Visualizza un menu di scelta rapida nella posizione specificata e tiene traccia della selezione degli elementi nel menu di scelta rapida. Il menu di scelta rapida può essere visualizzato in qualsiasi punto dello schermo.
Sintassi
BOOL TrackPopupMenuEx(
[in] HMENU hMenu,
[in] UINT uFlags,
[in] int x,
[in] int y,
[in] HWND hwnd,
[in, optional] LPTPMPARAMS lptpm
);
Parametri
[in] hMenu
Tipo: HMENU
Handle per il menu di scelta rapida da visualizzare. Questo handle può essere ottenuto chiamando la funzione CreatePopupMenu per creare un nuovo menu di scelta rapida o chiamando la funzione GetSubMenu per recuperare un handle in un sottomenu associato a una voce di menu esistente.
[in] uFlags
Tipo: UINT
Specifica le opzioni della funzione.
Usare uno dei flag seguenti per specificare in che modo la funzione posiziona il menu di scelta rapida orizzontalmente.
Usare uno dei flag seguenti per specificare in che modo la funzione posiziona verticalmente il menu di scelta rapida.
Usare i flag seguenti per controllare l'individuazione della selezione dell'utente senza dover configurare una finestra padre per il menu.
Utilizzare uno dei flag seguenti per specificare quale pulsante del mouse tiene traccia del menu di scelta rapida.
Utilizzare qualsiasi combinazione ragionevole dei flag seguenti per modificare l'animazione di un menu. Ad esempio, selezionando un flag orizzontale e verticale, è possibile ottenere un'animazione diagonale.
Affinché si verifichi un'animazione, la funzione SystemParametersInfo deve impostare SPI_SETMENUANIMATION. Inoltre, tutti i flag TPM_*ANIMATION , ad eccezione di TPM_NOANIMATION, vengono ignorati se l'animazione di dissolvenza del menu è attivata. Per altre informazioni, vedere il flag SPI_GETMENUFADE in SystemParametersInfo.
Usare il flag TPM_RECURSE per visualizzare un menu quando è già visualizzato un altro menu. Questo è progettato per supportare i menu di scelta rapida all'interno di un menu.
Utilizzare uno dei flag seguenti per specificare se supportare l'allineamento orizzontale o verticale.
Il rettangolo escluso è una parte dello schermo che il menu non deve sovrapporsi; viene specificato dal parametro lptpm .
Per il layout di testo da destra a sinistra, usare TPM_LAYOUTRTL. Per impostazione predefinita, il layout di testo è da sinistra a destra.
[in] x
Tipo: int
Posizione orizzontale del menu di scelta rapida, nelle coordinate dello schermo.
[in] y
Tipo: int
Posizione verticale del menu di scelta rapida, nelle coordinate dello schermo.
[in] hwnd
Tipo: HWND
Handle per la finestra proprietaria del menu di scelta rapida. Questa finestra riceve tutti i messaggi dal menu. La finestra non riceve un messaggio WM_COMMAND dal menu finché la funzione non viene restituita. Se si specifica TPM_NONOTIFY nel parametro fuFlags , la funzione non invia messaggi alla finestra identificata da hwnd. Tuttavia, è comunque necessario passare un handle di finestra in hwnd. Può essere qualsiasi handle di finestra dall'applicazione.
[in, optional] lptpm
Tipo: LPTPMPARAMS
Puntatore a una struttura TPMPARAMS che specifica un'area dello schermo non deve sovrapporsi. Questo parametro può essere NULL.
Valore restituito
Tipo: BOOL
Se si specifica TPM_RETURNCMD nel parametro fuFlags , il valore restituito è l'identificatore di voce di menu dell'elemento selezionato dall'utente. Se l'utente annulla il menu senza effettuare una selezione o se si verifica un errore, il valore restituito è zero.
Se non si specifica TPM_RETURNCMD nel parametro fuFlags , il valore restituito è diverso da zero se la funzione riesce e zero se ha esito negativo. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Chiamare GetSystemMetrics con SM_MENUDROPALIGNMENT per determinare il flag di allineamento orizzontale corretto (TPM_LEFTALIGN o TPM_RIGHTALIGN) e/o il flag di direzione dell'animazione orizzontale (TPM_HORPOSANIMATION o TPM_HORNEGANIMATION) da passare a TrackPopupMenu o TrackPopupMenuEx. Questo è essenziale per creare un'esperienza utente ottimale, soprattutto quando si sviluppano applicazioni Microsoft Tablet PC.
Per visualizzare un menu di scelta rapida per un'icona di notifica, la finestra corrente deve essere la finestra in primo piano prima che l'applicazione chiami TrackPopupMenu o TrackPopupMenuEx. In caso contrario, il menu non scompare quando l'utente fa clic all'esterno del menu o alla finestra che ha creato il menu (se è visibile). Se la finestra corrente è una finestra figlio, è necessario impostare la finestra padre (primo livello) come finestra di primo piano.
Requisiti
Requisito | Valore |
---|---|
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-1 (introdotto in Windows 8.1) |
Vedi anche
Informazioni concettuali
Riferimento