MessageBoxA, fonction (winuser.h)
Affiche une boîte de dialogue modale qui contient une icône système, un ensemble de boutons et un bref message spécifique à l’application, tel que les informations d’état ou d’erreur. La zone de message retourne une valeur entière qui indique le bouton sur lequel l’utilisateur a cliqué.
Syntaxe
int MessageBoxA(
[in, optional] HWND hWnd,
[in, optional] LPCSTR lpText,
[in, optional] LPCSTR lpCaption,
[in] UINT uType
);
Paramètres
[in, optional] hWnd
Type : HWND
Handle vers la fenêtre propriétaire de la boîte de message à créer. Si ce paramètre est NULL, la zone de message n’a pas de fenêtre propriétaire.
[in, optional] lpText
Type : LPCTSTR
Message à afficher. Si la chaîne se compose de plusieurs lignes, vous pouvez séparer les lignes à l’aide d’un retour chariot et/ou d’un caractère de flux de lignes entre chaque ligne.
[in, optional] lpCaption
Type : LPCTSTR
Titre de la boîte de dialogue. Si ce paramètre est null, le titre par défaut est Erreur.
[in] uType
Type : uiNT
Contenu et comportement de la boîte de dialogue. Ce paramètre peut être une combinaison d’indicateurs à partir des groupes d’indicateurs suivants.
Pour indiquer les boutons affichés dans la boîte de message, spécifiez l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
La boîte de message contient trois boutons push : abandonner, réessayeret Ignorer. |
|
La boîte de message contient trois boutons push : Annuler, réessayer, Continuer. Utilisez ce type de zone de message au lieu de MB_ABORTRETRYIGNORE. |
|
Ajoute un bouton Aide à la boîte de message. Lorsque l’utilisateur clique sur le bouton Aide ou appuie sur F1, le système envoie un message WM_HELP au propriétaire. |
|
La boîte de message contient un bouton push : OK. Il s’agit de la valeur par défaut. |
|
La boîte de message contient deux boutons push : OK et Annuler. |
|
La boîte de message contient deux boutons push : réessayer et Annuler. |
|
La boîte de message contient deux boutons push : Oui et Non. |
|
La boîte de message contient trois boutons push : Oui, Nonet Annuler. |
Pour afficher une icône dans la zone de message, spécifiez l’une des valeurs suivantes.
Pour indiquer le bouton par défaut, spécifiez l’une des valeurs suivantes.
Pour indiquer la modalité de la boîte de dialogue, spécifiez l’une des valeurs suivantes.
Pour spécifier d’autres options, utilisez une ou plusieurs des valeurs suivantes.
Valeur | Signification |
---|---|
|
Identique au bureau de la station de fenêtre interactive. Pour plus d’informations, consultez Windows Stations.
Si le bureau d’entrée actuel n’est pas le bureau par défaut, MessageBox ne retourne pas tant que l’utilisateur ne passe pas au bureau par défaut. |
|
Le texte est justifié avec le droit. |
|
Affiche le texte de message et de légende à l’aide de l’ordre de lecture de droite à gauche sur les systèmes hébreu et arabe. |
|
La boîte de message devient la fenêtre de premier plan. En interne, le système appelle la fonction SetForegroundWindow pour la boîte de message. |
|
La boîte de message est créée avec le style de fenêtre WS_EX_TOPMOST. |
|
L’appelant est un service qui informe l’utilisateur d’un événement. La fonction affiche une boîte de message sur le bureau actif actuel, même s’il n’y a aucun utilisateur connecté à l’ordinateur.
Services Terminal : Si le thread appelant a un jeton d’emprunt d’identité, la fonction dirige la boîte de message vers la session spécifiée dans le jeton d’emprunt d’identité. Si cet indicateur est défini, le paramètre hWnd doit être NULL. Il s’agit de sorte que la boîte de message puisse apparaître sur un bureau autre que le bureau correspondant au hWnd. Pour plus d’informations sur les considérations de sécurité relatives à l’utilisation de cet indicateur, consultez Interactive Services. En particulier, sachez que cet indicateur peut produire du contenu interactif sur un bureau verrouillé et doit donc être utilisé uniquement pour un ensemble très limité de scénarios, tels que l’épuisement des ressources. |
Valeur de retour
Type : int
Si une boîte de message a un bouton
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Si la fonction réussit, la valeur de retour est l’une des valeurs d’élément de menu suivantes.
Retourner le code/la valeur | Description |
---|---|
|
Le bouton Abandonner a été sélectionné. |
|
Le bouton Annuler a été sélectionné. |
|
Le bouton Continuer a été sélectionné. |
|
Le bouton Ignorer a été sélectionné. |
|
Le bouton Aucun a été sélectionné. |
|
Le bouton OK a été sélectionné. |
|
Le bouton réessayer a été sélectionné. |
|
Le bouton Réessayer a été sélectionné. |
|
Le bouton Oui a été sélectionné. |
Remarques
Les icônes système suivantes peuvent être utilisées dans une boîte de message en définissant le paramètre uType sur la valeur d’indicateur correspondante.
Icône | Valeurs d’indicateur |
---|---|
Icône | MB_ICONHAND, MB_ICONSTOPou MB_ICONERROR |
Icône | MB_ICONQUESTION |
Icône | MB_ICONEXCLAMATION ou MB_ICONWARNING |
Icône | MB_ICONASTERISK ou MB_ICONINFORMATION |
L’ajout de deux marques de droite à gauche (RLMs), représentées par le caractère de mise en forme Unicode U+200F, au début d’une chaîne d’affichage MessageBox est interprétée par le moteur de rendu MessageBox afin de provoquer le rendu de l’ordre de lecture du MessageBox comme étant de droite à gauche (RTL).
Lorsque vous utilisez une boîte de message modale système pour indiquer que le système est faible en mémoire, les chaînes pointées par l'lpText et paramètres lpCaption ne doivent pas être extraits d’un fichier de ressources, car une tentative de chargement de la ressource peut échouer.
Si vous créez une boîte de message pendant qu’une boîte de dialogue est présente, utilisez un handle pour la boîte de dialogue en tant que paramètre hWnd. Le paramètre hWnd ne doit pas identifier une fenêtre enfant, telle qu’un contrôle dans une boîte de dialogue.
Exemples
Dans l’exemple suivant, l’application affiche une boîte de message qui invite l’utilisateur à entrer une action après qu’une condition d’erreur s’est produite. La boîte de message affiche le message qui décrit la condition d’erreur et comment le résoudre. Le style MB_CANCELTRYCONTINUE dirige MessageBox pour fournir trois boutons avec lesquels l’utilisateur peut choisir comment continuer. Le style MB_DEFBUTTON2 définit le focus par défaut sur le deuxième bouton de la zone de message, dans ce cas, le bouton réessayer.
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’image suivante montre la sortie de l’exemple de code précédent :
boîte de messagePour obtenir un autre exemple de boîte de message, consultez Affichage d’une zone de message.
Note
L’en-tête winuser.h définit MessageBox comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winuser.h (include Windows.h) |
bibliothèque | User32.lib |
DLL | User32.dll |
ensemble d’API | ext-ms-win-ntuser-dialogbox-l1-1-0 (introduit dans Windows 8) |
Voir aussi
conceptuelle
autres ressources
de référence