C++ : Utiliser les boites de dialogues avec la fonction MessageBox

Comment afficher une boite d'information avec l'api Windows ? C'est facile en utilisant la fonction MessageBox.

Vous trouverez ci-dessous la syntaxe de cette fonction et un exemple de code source en C++ affichant une boite de dialogue avec les boutons "Oui", "Non" et "Annuler".

Syntaxe

La fonction MessageBox est définie dans windows.h

int MessageBox(hwnd, text, titre, style);
HWND hwnd; /* handle de la fenetre */
LPCSTR text; /* addresse du texte */
LPCSTR titre; /* addresse du titre */
UINT style; /* style de la Message box */

Styles

UINT Description
MB_ABORTRETRYIGNORE La MessageBox aura comme boutons: Annuler, Réessayer, et Ignorer.
MB_DEFBUTTON1 Le premier bouton de la MessageBox sera par defaut.
MB_DEFBUTTON2 Le deuxième bouton sera par défaut.
MB_DEFBUTTON3 Le troisième bouton sera par défaut.
MB_ICONEXCLAMATION L'icône de la MessageBox sera un point d'exclamation.
MB_ICONINFORMATION L'icône de la MessageBox sera le I.
MB_ICONQUESTION L'icône de la MessageBox sera un point d'interrogation.
MB_ICONSTOP L'icône de la MessageBox sera un panneau stop.
MB_OK La MessageBox contiendra le bouton OK.
MB_OKCANCEL La MessageBox contiendra les boutons OK et Annuler.
MB_RETRYCANCEL La MessageBox contiendra les boutons Réessayer et Annuler.
MB_YESNO La MessageBox contiendra les boutons Oui et Non.
MB_YESNOCANCEL La MessageBox contiendra les boutons Oui, Non et Annuler.

Retour

Cette fonction retourne ces valeurs:

Valeur Signification
IDOK Le bouton Ok a été sélectionné.
IDCANCEL Le bouton Annuler a été sélectionné.
IDIGNORE Le bouton Ignorer a été sélectionné.
IDRETRY Le bouton Réessayer a été sélectionné.
IDNO Le bouton Non a été sélectionné.
IDYES Le bouton Oui a été sélectionné.

Exemple(s)

#define WIN32_LEAN_AND_MEAN

#include <windows.h>

#include "resource.h"

HINSTANCE hInst;

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
    int msgboxID = MessageBox(NULL, "Voulez-vous continuer?", "Continuer ?", MB_ICONWARNING | MB_YESNOCANCEL);

    switch (msgboxID)
    {
        case IDYES:
            // TODO
        break;
        case IDNO:
            // TODO
        break;
        case IDCANCEL:
            // TODO
        break;
    }
    return 0;
}

 

Twitter Facebook Google Plus Email