IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Thread et AfxMessageBox compatible???


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 29
    Points : 20
    Points
    20
    Par défaut Thread et AfxMessageBox compatible???
    Bonjour les gens!

    Je voudrais savoir si c'était possible d'envoyer un message à l'écran à partir d'un thread et si oui cmt faire????

    Moi j'ai essayé ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Mon thread
    UINT monThread(LPVOID pParam)
    {
    //...
     
    AfxMessageBox("Mon message",MB_OK,0);
    //...
    return 0;
    }
    Mais ca n'a pas marché , enfin à la compil' ca passe mais l'excution n'affiche pas le message. Sachant q mon thread est bien créé dans mon pgm principal.


    Merci
    Mélanie

  2. #2
    mat.M
    Invité(e)
    Par défaut
    Bonjour,

    Non !!! Les "MessageBox" c'est à proscrire du moins à éviter si possible , surtout dans un thread.
    Pour la simple et unique raison qu'une MessageBox s'affiche en "Modal" et demeure bloquante pour l'application.
    Tant que l'utilisateur n'appuie pas sur OK , l'appli est bloquée.
    Solution : afficher dans un contrôle le message voulu (zone de texte , barre d'état ou bien zone de dessin et affichage avec TextOut ) par exemple .
    Mais si possible éviter MessageBox.
    On peut utiliser MessageBox à la fin de tout un traitement.
    En affichant par exemple : " traitement terminé . Des erreurs sont survenues pendant le traitement.Voulez-vous voir les erreurs ?"
    Sinon l'autre possibilité c'est d'écrire pendant le traitement dans un fichier de tracé ouvert en ajout ( append ) .

  3. #3
    mat.M
    Invité(e)
    Par défaut
    Et de rajouter :
    Mais ca n'a pas marché , enfin à la compil' ca passe mais l'excution n'affiche pas le message. Sachant q mon thread est bien créé dans mon pgm principal.
    Il y a une différence fondamentale entre erreurs de compilations et erreurs d'exécution.
    Les erreurs de compilation ce sont en général des erreurs relevant d'une syntaxe non valide et non conforme aux régles de "grammaire" du compilateur.
    C'est comme si on faisait des fautes de français.
    Déclarer un tableau d'entier de 100 éléments avec int tableau_entier[100] et écrire au-delà de tableau_entier[99], en C/C++ cela passe parfaitement pour le compilateur à la compilation.
    En revanche en exéuction s'attendre à des plantages .

    Celui-ci ne VERIFIE PAS la logique du programme.
    Il se contente de vérifier la syntaxte et analyser le code source.
    De même qu'en C++ allouer des pointeurs avec new sans faire de delete associés ça passe parfaitement pour le compilateur mais est susceptible de provoquer des plantages à l'exécution ( fuites mémoires).
    Capito ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    OK! merci pour tes explications.

    Mélanie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  2. Réponses: 7
    Dernier message: 03/05/2006, 16h13
  3. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/2002, 13h53
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. [Kylix] Pb de Thread !!
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 25/04/2002, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo