Funzione MessageBoxA (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 su cui l'utente ha fatto clic.
Sintassi
int MessageBoxA(
[in, optional] HWND hWnd,
[in, optional] LPCSTR lpText,
[in, optional] LPCSTR lpCaption,
[in] UINT uType
);
Parametri
[in, optional] hWnd
Tipo: HWND
Handle per la finestra proprietaria 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.
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 al desktop della stazione interattiva della finestra. Per altre informazioni, vedere Window Stations.
Se il desktop di input corrente non è il desktop predefinito, MessageBox non restituisce finché l'utente non passa al desktop predefinito. |
|
Il testo è giustificato a destra. |
|
Visualizza il testo del messaggio e della didascalia usando l'ordine di lettura da destra a sinistra nei sistemi ebrei e arabi. |
|
La finestra di messaggio diventa la finestra in 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 invia una notifica all'utente di un evento. 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 finestra di messaggio alla sessione specificata nel token di rappresentazione. Se questo flag è impostato, il parametro hWnd deve essere NULL. Ciò significa che la finestra di messaggio può essere visualizzata in un desktop diverso dal desktop corrispondente al hWnd. Per informazioni sulle considerazioni sulla sicurezza relative all'uso di questo flag, vedere Interactive Services. 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 in una finestra di messaggio è presente un pulsante di Annulla
Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Se la funzione ha esito positivo, il valore restituito è uno dei valori delle voci di menu seguenti.
Codice/valore restituito | Descrizione |
---|---|
|
È stato selezionato il pulsante interruzione |
|
È stato selezionato il pulsante Annulla |
|
È stato selezionato il pulsante Continua |
|
È stato selezionato il pulsante Ignora |
|
È stato selezionato il pulsante No (Nessuna |
|
È stato selezionato il pulsante OK |
|
È stato selezionato il pulsante Riprova |
|
È stato selezionato il pulsante Riprova |
|
È stato selezionato pulsante Sì. |
Osservazioni
Le icone di sistema seguenti possono essere usate in una finestra di messaggio impostando il parametro uType
Icona | Valori dei flag |
---|---|
icona | MB_ICONHAND, MB_ICONSTOPo MB_ICONERROR |
Icona | MB_ICONQUESTION |
Icona | MB_ICONEXCLAMATION o MB_ICONWARNING |
Icona | MB_ICONASTERISK o MB_ICONINFORMATION |
L'aggiunta di due segni da destra a sinistra (RLM), 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 far sì che venga eseguito il rendering dell'ordine di lettura di MessageBox come da destra a sinistra (RTL).
Quando si usa una finestra di messaggio modale di sistema per indicare che la memoria del sistema è insufficiente, le stringhe a cui punta il lpText e parametri 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
Esempi
Nell'esempio seguente l'applicazione visualizza una finestra di messaggio che richiede all'utente un'azione dopo che si è verificata una condizione di errore. Nella finestra di messaggio viene visualizzato 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.
Nota
L'intestazione winuser.h definisce MessageBox 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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
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) |
Vedere anche
concettuale
altre risorse
riferimento