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

Contribuez Discussion :

[SDL][FAQ/Source] Comment savoir si le programme est actif ?


Sujet :

Contribuez

  1. #1
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut [SDL][FAQ/Source] Comment savoir si le programme est actif ?
    La SDL propose la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Uint8 SDL_GetAppState(void);
    Cette fonction retourne un entier entre 0 et 7 avec une combinaison binaire des champs suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #define SDL_APPMOUSEFOCUS   0x01        /* The app has mouse coverage */
    #define SDL_APPINPUTFOCUS   0x02        /* The app has input focus */
    #define SDL_APPACTIVE       0x04        /* The application is active */
    Cela veut dire que le retour peut prendre les valeurs suivantes :

    1. La souris est sur la fenêtre;
    2. La souris a le focus des entrées, cela veut généralement dire que la fenêtre est sélectionnée et en premier plan;
    3. L'application est active


    Une solution pour recevoir les changements d'états est d'ajouter ceci dans la boucle événementielle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            /* Valeur impossible pour oldstate, cela force le premier changement */
            Uint8 state, oldstate = 255 
            ...
            state = SDL_GetAppState();
     
            /* Test de changement */
            if(oldstate != state) {
                oldstate = state;
                std::cout << "Nouvel etat : " << (int) state << std::endl;
            }
    Jc
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    C'est une Q/R de FAQ ? Un code source ? Les deux ?
    (pense à mettre le ou les tags qui vont bien dans le titre )

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Laurent Gomila
    C'est une Q/R de FAQ ? Un code source ? Les deux ?
    (pense à mettre le ou les tags qui vont bien dans le titre )
    Désolé, je pensais l'avoir fait et je suis passé à côté... Je pensais le mettre en FAQ et faire une petite source autour... Faut juste que je trouve quoi mettre de plus, je pensais reprendre un de mes programmes SDL et faire une gestion de pause.

    Jc

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je pensais le mettre en FAQ et faire une petite source autour... Faut juste que je trouve quoi mettre de plus, je pensais reprendre un de mes programmes SDL et faire une gestion de pause.
    Oui c'est une bonne idée.

Discussions similaires

  1. DOS BATCH comment savoir si un programme est déjà lancé ?
    Par ritchie23 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 21/10/2008, 19h37
  2. [FAQ] Comment savoir si l'on est connecté ou non à Internet
    Par Droïde Système7 dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 10/09/2008, 15h38
  3. Réponses: 2
    Dernier message: 11/08/2008, 08h50
  4. Réponses: 1
    Dernier message: 03/08/2008, 06h35
  5. Comment savoir qu'on programme mal ?
    Par kisitomomotene dans le forum Langages de programmation
    Réponses: 24
    Dernier message: 16/11/2005, 15h04

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