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

wxWidgets Discussion :

Comment supprimer les dialogues par défaut des messages d'erreur ?


Sujet :

wxWidgets

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 104
    Points : 614
    Points
    614
    Par défaut Comment supprimer les dialogues par défaut des messages d'erreur ?
    Bonjour,

    Lorsqu'une opération ne s'effectue pas correctement, wxWidgets a tendance à afficher des messages d'erreurs dans des boîtes de dialogues. Cependant, j'aimerais bien parfois passer l'erreur sous silence.

    Par exemple, j'utilise la fonction suivante pour charger une image qui va me servir de splash screen :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( img.LoadFile(splash_path, wxBITMAP_TYPE_PNG) )
        splash = new wxSplashScreen
          ( img, wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_NO_TIMEOUT, 0, NULL,
            wxID_ANY );
    Si l'image n'existe pas, j'estime que ce n'est pas vraiment un problème. Je veux ne pas embêter l'utilisateur et je veux simplement ignorer le splash screen. Malheureusement, dans ce cas, wxWidgets m'affiche automatiquement le message suivant X
    Citation Envoyé par wxWidgets
    Can't load image from file '...': file does not exist.
    Comment faire pour que ce genre de message par défaut ne s'affiche plus ?

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    wxLogNull est ton ami.
    Soit localement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    {
       wxLogNull no_log;
       if ( img.LoadFile(splash_path, wxBITMAP_TYPE_PNG) ){
           splash = new wxSplashScreen
             ( img, wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_NO_TIMEOUT, 0, NULL,
               wxID_ANY );
       }
    }// destruction de no_log. Le log standard reprend
    Soit pour toute ton appli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bool wxMyApp::OnInit()
    {
        delete wxLog::SetActiveTarget(new wxLogNull());  
    }
    P.S. je ne suis plus très sur du coup du delete. Mais il me semble bien que wxLog::SetActiveTarget retournant la précédente instance, il faut la détruire.

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Tu peux aussi jeter un coup d'oeil dans cette dernière discussion. Faudra que je fasse une bafouille là dessus, des questions sur le log reviennent souvent.

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 104
    Points : 614
    Points
    614
    Par défaut
    Merci, le LogNull local est parfait

    Il y a quand même des informations qui ne sont pas toujours facile à trouver dans wxWidgets.

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

Discussions similaires

  1. Supprimer les autorisations par défaut MOSS 2007
    Par Parkman dans le forum SharePoint
    Réponses: 2
    Dernier message: 07/02/2008, 10h06
  2. Réponses: 8
    Dernier message: 28/12/2006, 10h51
  3. Réponses: 11
    Dernier message: 13/09/2006, 10h56
  4. Réponses: 1
    Dernier message: 25/01/2006, 12h07
  5. Réponses: 9
    Dernier message: 13/06/2005, 17h56

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