MessageBox

La funzione MessageBox crea, Visualizza e gestisce una finestra di messaggio. La finestra di messaggio contiene un messaggio definito dall'applicazione e titolo, oltre a qualsiasi combinazione di icone predefinite e pulsanti.

int MessageBox ( HWND  hWnd, / / handle di finestra proprietariaLPCTSTRlpText, / / indirizzo del testo nella finestra di messaggioLPCTSTRlpCaption, / / indirizzo del titolo di una finestra di messaggioUINTuType / / stili della finestra di messaggio);
 

Parametri

hWnd
Identifica la finestra proprietaria della finestra di messaggio da creare. Se questo parametro è NULL, la finestra di messaggio non ha nessuna finestra proprietario.
lpText
Puntatore a una stringa con terminazione null contenente il messaggio da visualizzare.
lpCaption
Puntatore a una stringa null-terminated utilizzata per il titolo della finestra di dialogo. Se questo parametro è NULL, viene utilizzato il titolo predefinito errore.
uType
Specifica un insieme di flag di bit che determinano il contenuto e il comportamento della finestra di dialogo. Questo parametro può essere una combinazione di flag dai seguenti gruppi di bandiere.

Specificare uno dei seguenti flag per indicare i pulsanti contenuti nella finestra del messaggio:
Bandiera Significato
MB_ABORTRETRYIGNORE La finestra di messaggio contiene tre pulsanti: Abort, riprova e ignorare.
MB_OK La finestra di messaggio contiene un pulsante: OK. Questa è l'impostazione predefinita.
MB_OKCANCEL La finestra di messaggio contiene due pulsanti: OK e Annulla.
MB_RETRYCANCEL La finestra di messaggio contiene due pulsanti: Riprova e Annulla.
MB_YESNO La finestra di messaggio contiene due pulsanti: Sì e No.
MB_YESNOCANCEL La finestra di messaggio contiene tre pulsanti: Sì, No e Annulla.

Specificare uno dei seguenti flag per visualizzare un'icona nella finestra del messaggio:
Bandiera Significato
MB_ICONEXCLAMATION,
MB_ICONWARNING
Un'icona del punto esclamativo viene visualizzata nella finestra del messaggio.
MB_ICONINFORMATION, MB_ICONASTERISK
Viene visualizzata un'icona che consiste di una lettera minuscola io in un cerchio nella finestra del messaggio.
MB_ICONQUESTION Verrà visualizzata un'icona di punto interrogativo nella finestra del messaggio.
MB_ICONSTOP,
MB_ICONERROR,
MB_ICONHAND
Un segnale di stop icona viene visualizzata nella finestra del messaggio.

Specificare uno dei seguenti flag per indicare il pulsante predefinito:
Bandiera Significato
MB_DEFBUTTON1 Il primo pulsante è il pulsante di default.

MB_DEFBUTTON1 è l'impostazione predefinita non viene specificato MB_DEFBUTTON2, MB_DEFBUTTON3 o MB_DEFBUTTON4.

MB_DEFBUTTON2 Il secondo pulsante è il pulsante di default.
MB_DEFBUTTON3 Il terzo pulsante è il pulsante di default.
MB_DEFBUTTON4 Il quarto pulsante è il pulsante di default.

Specificare uno dei seguenti flag per indicare la modalità nella finestra di dialogo:
Bandiera Significato
MB_APPLMODAL L'utente deve rispondere nella finestra di messaggio prima di continuare il lavoro nella finestra identificata dal parametro hWnd . Tuttavia, l'utente può spostare le finestre di altri thread e lavorare in tali finestre.

A seconda della gerarchia delle finestre dell'applicazione, l'utente potrebbe essere in grado di spostare in altre finestre all'interno del thread. Tutte le finestre figlio del padre di una finestra di messaggio vengono disattivate automaticamente, ma non sono finestre popup.

MB_APPLMODAL è il valore predefinito se viene specificata né MB_SYSTEMMODAL né MB_TASKMODAL.

MB_SYSTEMMODAL Lo stesso come MB_APPLMODAL, salvo che la finestra di messaggio ha lo stile WS_EX_TOPMOST. Utilizzare le finestre di messaggio di sistema modale per notificare all'utente di serio, potenzialmente dannosi errori che richiedono attenzione immediata (ad esempio, a corto di memoria). Questo flag non ha alcun effetto sulla capacità dell'utente di interagire con windows diversi da quelli associati con hWnd.
MB_TASKMODAL Lo stesso come MB_APPLMODAL, eccetto che tutte le finestre di primo livello appartenendo a thread corrente vengono disabilitate se il parametro hWnd è NULL. Utilizzare questo flag quando l'applicazione chiamante o la raccolta non ha un handle di finestra disponibile ma deve ancora impedire input per altre finestre nel thread chiamante senza sospendere altri thread.

Inoltre, è possibile specificare i seguenti flag:

MB_DEFAULT_DESKTOP_ONLY
Desktop attualmente riceve input deve essere un desktop predefinito; in caso contrario, la funzione ha esito negativo. Un desktop predefinito è uno un'applicazione viene eseguita su dopo che l'utente ha eseguito l'accesso.
MB_HELP
Aggiunge un pulsante nella finestra di messaggio. Scegliendo il pulsante Help o premendo F1 genera un evento di aiuto.
MB_RIGHT
Il testo è allineato a destra.
MB_RTLREADING
Visualizza il messaggio e la didascalia testo utilizzando l'ordine di lettura da destra a sinistra su sistemi ebraico ed arabo.
MB_SETFOREGROUND
La finestra di messaggio diventa la finestra in primo piano. Internamente, il sistema chiama la funzione di SetForegroundWindow per la finestra di messaggio.
MB_TOPMOST
La finestra di messaggio viene creata con lo stile della finestra WS_EX_TOPMOST.
MB_SERVICE_NOTIFICATION
Windows NT: Il chiamante è un servizio di notifica all'utente di un evento. La funzione visualizza una finestra di messaggio sull'active desktop corrente, anche se nessun utente è connesso al computer.

Se questo flag è impostato, il parametro hWnd deve essere NULL. Questa è quindi la finestra di messaggio può essere visualizzato su un desktop tranne il desktop corrispondente hWnd.

Per Windows NT versione 4.0, è cambiato il valore di MB_SERVICE_NOTIFICATION. Vedere WINUSER.H per i vecchi e nuovi valori. Windows NT 4.0 fornisce compatibilità con le versioni precedenti per i servizi di pre-esistenti mappando il vecchio valore sul nuovo valore nell'attuazione del MessageBox e MessageBoxEx. Questo mapping è fatto solo per i file eseguibili che hanno un numero di versione, come stabilito dal linker, inferiore a 4.0.

Creare un servizio che utilizza MB_SERVICE_NOTIFICATION e può essere eseguito su Windows NT 4.0 e Windows NT 3. x, si hanno due scelte.
  1. In fase di collegamento, specificare un numero di versione inferiore a 4.0; o
nbsp;   2. In fase di collegamento, specificare la versione 4.0. In fase di esecuzione, utilizzare la funzione GetVersionEx per controllare la versione del sistema. Quando in esecuzione su Windows &NT 3. x, utilizzare MB_SERVICE_NOTIFICATION_NT3X; e su Windows NT 4.0, utilizzare MB_SERVICE_NOTIFICATION.

MB_SERVICE_NOTIFICATION_NT3X
Windows NT: Questo valore corrisponde al valore definito per la MB_SERVICE_NOTIFICATION per Windows NT versione 3.51.

Valori restituiti

Il valore restituito è pari a zero, se non vi è memoria sufficiente per creare la finestra di messaggio.

Se la funzione ha esito positivo, il valore restituito è una delle voci di menu seguenti valori restituiti dalla finestra di dialogo:

Valore Significato
IDABORT È stato selezionato il pulsante di interruzione.
IDCANCEL È stato selezionato il pulsante Annulla.
IDIGNORE Ignorare è stato selezionato il pulsante.
IDNO È stato selezionato alcun tasto.
IDOK È stato selezionato il pulsante OK.
IDRETRY È stato selezionato il pulsante Riprova.
IDYES Sì è stato selezionato il pulsante.

Se una finestra di messaggio ha un pulsante Annulla, la funzione restituisce il valore IDCANCEL se viene premuto il tasto esc o se viene selezionato il pulsante Annulla. Produce alcun effetto se la finestra di messaggio non ha nessun pulsante Annulla, premendo esc.

Osservazioni

Quando si utilizza una finestra di messaggio di sistema modale per indicare che il sistema ha poca memoria, le stringhe a cui punta il lpText e lpCaption i parametri non devono essere preso da un file di risorse, perché un tentativo di caricare la risorsa potrebbe non riuscire.

Quando un'applicazione chiama MessageBox e specifica i flag MB_ICONHAND e MB_SYSTEMMODAL per il parametro uType , il sistema visualizza la finestra di messaggio risultante indipendentemente dalla memoria disponibile. Quando questi flag vengono specificati, il sistema limita la lunghezza del testo casella messaggio su tre righe. Il sistema non non automaticamente spezzare le linee da stare in una finestra di messaggio, tuttavia, quindi la stringa del messaggio deve contenere ritorni a rompere le righe nei luoghi appropriati.

Se si crea una finestra di messaggio, mentre una finestra di dialogo è presente, utilizzare l'handle della finestra di dialogo come parametro hWnd . Il parametro hWnd non dovrebbe identificare una finestra figlio, ad esempio un controllo in una finestra di dialogo.

Windows 95:Il sistema può supportare un massimo di 16.364 handle della finestra.

Windows CE: Windows CE non supporta i seguenti stili per il parametro uType

MB_SYSTEMMODAL

MB_TASKMODAL

MB_HELP

MB_RIGHT

MB_RTLREADING

MB_DEFAULT_DESKTOP_ONLY

MB_SERVICE_NOTIFICATION

MB_USERICON.

Restituiti i seguenti valori non sono supportati:

IDCLOSE

IDHELP

Descrizione

nbsp; Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Richiede la versione 1.0 o successiva.
Intestazione:Dichiarati in winuser.
Importare librerie:Utilizzare user32.lib.
Unicode:Implementato come versioni Unicode e ANSI in Windows e Windows NT.

Vedi anche

Panoramica di finestre di dialogo, funzioni di Dialog Box, FlashWindow, MessageBeep, MessageBoxEx, MessageBoxIndirect, SetForegroundWindow

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

Index