Simple message Windows.

Afficher une fenêtre qui attendra juste que vous cliquiez sur OK, ou autres.

TCHAR , MessageBox

Voir version :

Pas de dépendances

Télécharger :

#include <windows.h>
#include <tchar.h>
#include <stdio.h>

int main()
{
    int res,type = MB_OK;
    res = MessageBox(NULL,_T("voila le message"),_T("voila le titre"),type);
    printf("Code de retour : %d\n",res);
    return 0;
}



Commentaires


  Je mets à jour ce tutoriel pour présenter aussi bien la fonction MessageBox que le concept du TCHAR.

Concept de TCHAR : 
******************

  Les chaînes de caractère sont historiquement des char*, tableau de char, avec 1 octet par char pour stocker de l'ASCII.
  Cependant, avec ce codage, on ne peut pas coder facilement de caractères comme des caractères chinois par exemple.

  Il a été inventé pour cela l'UNICODE. On codera les caractères sous 2 octets, en faisant un tableau de wchar_t au lieu de tableau de char.
  Le wchar_t est sur deux octets.

  Cependant, il faut conserver les deux versions possibles.
  Et toutes les fonctions Windows pourront être utilisées soit avec des char, soit avec des wchar_t

  On définira dans le projet le mot UNICODE (a coup de #define ou directement dans le projet) si on souhaite utiliser des wchar_t pour les
  fonctions Windows, sinon, ce sera des char.

  Regardez dans votre projet s'il y a UNICODE de défini ou non. Changez au besoin.

  Bref, les deux versions existent, et pour éviter d'alourdir le code, nous pourront utiliser des TCHAR, qui sera
  - soit un char si on n'est pas en UNICODE.
  - soit un wchar_t si on est en UNICODE.

  On pourra faire des tableaux de TCHAR.

  Vous connaissez les syntaxes pour déclarer des chaines, et des chaines unicodes :
  char* tmp = "plouf";
  wchar_t* tmp = L"plouf";

  La macro _T() (dans tchar.h) permet de mettre le L seulement si l'UNICODE est activé.
  On pourra alors écrire :

  TCHAR* tmp = _T("plouf");

  La fonction MessageBox que nous allons voir attend des TCHAR*, voila pourquoi je mets des _T dans certains paramètres.

  Selon que UNICODE est activé, MessageBox appellera en interne soit :
  MessageBoxA (qui prend des char*)
  MessageBoxW (qui prend des wchar_t*)

  Passez des TCHAR* à MessageBox, et vous aurez un programme qui marche dans les deux cas.


Fonction MessageBox : 
*********************

  Tres pratique fonction MessageBox.
  Le premier parametre est le Handle de la fenetre dans laquelle le MessaegBox doit apparaitre 
  (si vous voulez qu'elle aparaisse hors fenetre, comme ici, mettez NULL)

  Le deuxieme et troisieme parametres se comprennent bien.


types : (essayez de changer pour voir) (il est possible que certains ne marchent pas en fonction de la version de votre compilateur)

  Vous pouvez combiner certaines options avec la barre OU :
  exemple :

  int type = MB_ICONQUESTION|MB_YESNOCANCEL;

liste des types :

MB_ABORTRETRYIGNORE
MB_CANCELTRYCONTINUE
MB_HELP
MB_OK   // par defaut
MB_OKCANCEL
MB_RETRYCANCEL
MB_YESNO
MB_YESNOCANCEL
MB_ICONEXCLAMATION
MB_ICONWARNING
MB_ICONINFORMATION
MB_ICONASTERISK
MB_ICONQUESTION
MB_ICONSTOP
MB_ICONERROR
MB_ICONHAND
MB_DEFBUTTON1
MB_DEFBUTTON2
MB_DEFBUTTON3
MB_DEFBUTTON4
MB_APPLMODAL
MB_APPLMODAL
MB_SYSTEMMODAL
MB_TASKMODAL
MB_DEFAULT_DESKTOP_ONLY
MB_RIGHT
MB_RTLREADING
MB_SETFOREGROUND
MB_TOPMOST
MB_SERVICE_NOTIFICATION
MB_SERVICE_NOTIFICATION_NT3X


infos complémentaires : 
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxfunctions/messagebox.asp

retour : la fonction messagebox retournera une des valeurs suivantes, elle correspond au bouton sur lequel a appuyé l'utilisateur.

  codes de retour: 

#define IDOK                1
#define IDCANCEL            2
#define IDABORT             3
#define IDRETRY             4
#define IDIGNORE            5
#define IDYES               6
#define IDNO                7
#define IDCLOSE				8
#define IDHELP				9