Funzione MessageBox (winuser.h)
Visualizza una finestra di dialogo modale contenente un'icona di sistema, un set di pulsanti e un breve messaggio specifico dell'applicazione, ad esempio informazioni sullo stato o sugli errori. La finestra di messaggio restituisce un valore intero che indica il pulsante selezionato dall'utente.
Sintassi
int MessageBox(
[in, optional] HWND hWnd,
[in, optional] LPCTSTR lpText,
[in, optional] LPCTSTR lpCaption,
[in] UINT uType
);
Parametri
[in, optional] hWnd
Tipo: HWND
Handle per la finestra del proprietario della finestra di messaggio da creare. Se questo parametro è NULL, la finestra di messaggio non ha una finestra di proprietario.
[in, optional] lpText
Tipo: LPCTSTR
Messaggio da visualizzare. Se la stringa è costituita da più righe, è possibile separare le righe utilizzando un ritorno a capo e/o un carattere di avanzamento riga tra ogni riga.
[in, optional] lpCaption
Tipo: LPCTSTR
Titolo della finestra di dialogo. Se questo parametro è NULL, il titolo predefinito è Error.
[in] uType
Tipo: UINT
Contenuto e comportamento della finestra di dialogo. Questo parametro può essere una combinazione di flag dai gruppi di flag seguenti.
Per indicare i pulsanti visualizzati nella finestra di messaggio, specificare uno dei valori seguenti.
Valore | Significato |
---|---|
|
La finestra di messaggio contiene tre pulsanti push: Interruzione, Riprova e Ignora. |
|
La finestra di messaggio contiene tre pulsanti push: Annulla, Riprova, Continua. Utilizzare questo tipo di messaggio anziché MB_ABORTRETRYIGNORE. |
|
Aggiunge un pulsante Della Guida alla finestra di messaggio. Quando l'utente fa clic sul pulsante ? o preme F1, il sistema invia un messaggio di WM_HELP al proprietario. |
|
La finestra di messaggio contiene un pulsante di selezione: OK. Questo è il valore predefinito. |
|
La finestra di messaggio contiene due pulsanti push: OK e Annulla. |
|
La finestra di messaggio contiene due pulsanti push: Riprova e Annulla. |
|
La finestra di messaggio contiene due pulsanti push: Sì e No. |
|
La finestra di messaggio contiene tre pulsanti push: Sì, No e Annulla. |
Per visualizzare un'icona nella finestra di messaggio, specificare uno dei valori seguenti.
Per indicare il pulsante predefinito, specificare uno dei valori seguenti.
Per indicare la modalità della finestra di dialogo, specificare uno dei valori seguenti.
Per specificare altre opzioni, usare uno o più dei valori seguenti.
Valore | Significato |
---|---|
|
Uguale a desktop della stazione finestra interattiva. Per altre informazioni, vedere Stazioni finestra.
Se il desktop di input corrente non è il desktop predefinito, MessageBox non restituisce finché l'utente passa al desktop predefinito. |
|
Il testo è giustificato correttamente. |
|
Visualizza il messaggio e didascalia testo usando l'ordine di lettura da destra a sinistra nei sistemi ebrei e arabi. |
|
La finestra di messaggio diventa la finestra di primo piano. Internamente, il sistema chiama la funzione SetForegroundWindow per la finestra di messaggio. |
|
La finestra di messaggio viene creata con lo stile della finestra WS_EX_TOPMOST . |
|
Il chiamante è un servizio che notifica un evento all'utente. La funzione visualizza una finestra di messaggio sul desktop attivo corrente, anche se non è presente alcun utente connesso al computer.
Servizi terminal: Se il thread chiamante ha un token di rappresentazione, la funzione indirizza la casella di messaggio alla sessione specificata nel token di rappresentazione. Se questo flag è impostato, il parametro hWnd deve essere NULL. In questo modo la finestra di messaggio può essere visualizzata in un desktop diverso dal desktop corrispondente all'hWnd. Per informazioni sulle considerazioni sulla sicurezza relative all'uso di questo flag, vedere Servizi interattivi. In particolare, tenere presente che questo flag può produrre contenuto interattivo in un desktop bloccato e pertanto deve essere usato solo per un set molto limitato di scenari, ad esempio l'esaurimento delle risorse. |
Valore restituito
Tipo: int
Se una finestra di messaggio ha un pulsante Annulla , la funzione restituisce il valore IDCANCEL se il tasto ESC viene premuto o viene selezionato il pulsante Annulla . Se la finestra di messaggio non ha alcun pulsante Annulla , premere ESC non avrà effetto, a meno che non sia presente un pulsante MB_OK. Se viene visualizzato un pulsante MB_OK e l'utente preme ESC, il valore restituito sarà IDOK.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Se la funzione ha esito positivo, il valore restituito è uno dei valori della voce di menu seguenti.
Codice/valore restituito | Descrizione |
---|---|
|
È stato selezionato il pulsante Di interruzione . |
|
È stato selezionato il pulsante Annulla . |
|
È stato selezionato il pulsante Continua . |
|
È stato selezionato il pulsante Ignora . |
|
È stato selezionato il pulsante No . |
|
È stato selezionato il pulsante OK . |
|
È stato selezionato il pulsante Riprova . |
|
È stato selezionato il pulsante Riprova . |
|
È stato selezionato il pulsante Sì . |
Commenti
Le icone di sistema seguenti possono essere usate in una finestra di messaggio impostando il parametro uType sul valore del flag corrispondente.
Icona | Contrassegno dei valori |
---|---|
MB_ICONHAND, MB_ICONSTOP o MB_ICONERROR | |
MB_ICONQUESTION | |
MB_ICONEXCLAMATION o MB_ICONWARNING | |
MB_ICONASTERISK o MB_ICONINFORMATION |
L'aggiunta di due contrassegni da destra a sinistra (RLMs), rappresentati dal carattere di formattazione Unicode U+200F, all'inizio di una stringa di visualizzazione MessageBox viene interpretata dal motore di rendering MessageBox in modo da causare il rendering dell'ordine di lettura di MessageBox come RTL (right-to-left).
Quando si usa una finestra di messaggio modale di sistema per indicare che il sistema è basso in memoria, le stringhe puntate dai parametri lpText e lpCaption non devono essere prese da un file di risorse perché un tentativo di caricamento della risorsa potrebbe non riuscire.
Se si crea una finestra di messaggio mentre è presente una finestra di dialogo, usare un handle per la finestra di dialogo come parametro hWnd . Il parametro hWnd non deve identificare una finestra figlio, ad esempio un controllo in una finestra di dialogo.
Esempio
Nell'esempio seguente l'applicazione visualizza una finestra di messaggio che richiede all'utente un'azione dopo che si è verificata una condizione di errore. La finestra di messaggio visualizza il messaggio che descrive la condizione di errore e come risolverlo. Lo stile MB_CANCELTRYCONTINUE indirizza MessageBox per fornire tre pulsanti con cui l'utente può scegliere come procedere. Lo stile MB_DEFBUTTON2 imposta lo stato attivo predefinito sul secondo pulsante della finestra di messaggio, in questo caso, il pulsante Riprova .
int DisplayResourceNAMessageBox()
{
int msgboxID = MessageBox(
NULL,
(LPCWSTR)L"Resource not available\nDo you want to try again?",
(LPCWSTR)L"Account Details",
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
switch (msgboxID)
{
case IDCANCEL:
// TODO: add code
break;
case IDTRYAGAIN:
// TODO: add code
break;
case IDCONTINUE:
// TODO: add code
break;
}
return msgboxID;
}
L'immagine seguente mostra l'output dell'esempio di codice precedente:
Per un altro esempio di finestra di messaggio, vedere Visualizzazione di una finestra di messaggio.
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-dialogbox-l1-1-0 (introdotto in Windows 8) |
Vedi anche
Informazioni concettuali
Altre risorse
Riferimento