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

C++ Discussion :

Probléme de compréhension


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de cybercandyman
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 56
    Par défaut Probléme de compréhension
    Bonjour

    J'ai besoin de comprendre ce bout de code svp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        if (m_choice & MVT_RESTIT)
            GetDlgItem(IDC_RESTIT)->EnableWindow(true);
        if (m_choice & MVT_RESERV)
            GetDlgItem(IDC_RESERV)->EnableWindow(true);
        if (m_choice & MVT_REPAIR)
            GetDlgItem(IDC_REPAIR)->EnableWindow(true);
        if (m_choice & MVT_REPAIRED)
            GetDlgItem(IDC_REPAIRED)->EnableWindow(true);
        if (m_choice & MVT_DELIVER)
            GetDlgItem(IDC_DELIVER)->EnableWindow(true);
        if (m_choice & MVT_DERESERV)
            GetDlgItem(IDC_DERESERV)->EnableWindow(true);
    sachant qu'en entête j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #define MVT_RESTIT            1
    #define MVT_RESERV            2
    #define MVT_REPAIR            4
    #define MVT_REPAIRED        8
    #define MVT_DELIVER            16
    #define MVT_DERESERV        32
    et que m_choice est un integer qui vaut 3 .

    Je ne comprend pas pourquoi les deux premiéres conditions sont vérifiés. Pouvez vous m'expliquer svp

  2. #2
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    A chaque If un masque est effectué. Il faut pas voir m_choice comme un entier mais comme un binaire. Chaque masque vérifie si chaque bit est à 1 ou 0.

  3. #3
    Membre averti Avatar de cybercandyman
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 56
    Par défaut
    Merci pour ta réponse. J'étais déjà sur cette piste en fait sans vraiment l'avoir compris.
    Par contre je vois pas l'intérêt de se prendre autant la tête pour la personne qui a écrit ce code, a moins que je loupe encore quelque chose

    merci

  4. #4
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Je dirais qu'à chaque bit doit correspondre un static sur ton IHM (texte ou autre) qui sont désactivés à la base (EnableWindow(false)). Si le bit correspondant est à 1, alors le static est activé sur l'IHM.

    Disons que c'est un moyen de passer un max d'informations en utilisant que 6 bits utiles sur la taille totale de ta variable m_choice.

  5. #5
    Membre averti Avatar de cybercandyman
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 56
    Par défaut
    Hum c'est vicieux çà.
    merci pour tes éclaircissements je comprends mieux à présent

  6. #6
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Comme dit précédemment, c'est dans le but d'économiser de la mémoire.
    Au lieu de ça, tu aurais alors pu avoir des booléens, ce qui aurait utilisé plus de mémoire.

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

Discussions similaires

  1. [Débutant] problème de compréhension
    Par Sylvester dans le forum Général Java
    Réponses: 18
    Dernier message: 21/07/2005, 09h16
  2. Réponses: 5
    Dernier message: 11/04/2005, 10h21
  3. [C#] Problème de compréhension de System.Convert ET Provider
    Par papouAlain dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/11/2004, 21h52
  4. onclipevent (problème de compréhension)
    Par stephane eyskens dans le forum Flash
    Réponses: 8
    Dernier message: 24/09/2003, 15h09
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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