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

Windows Discussion :

EDIT BOX : insérer une variable


Sujet :

Windows

  1. #1
    Invité
    Invité(e)
    Par défaut EDIT BOX : insérer une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    hEdit=CreateWindow( "EDIT",
                            "",
                             WS_VISIBLE|WS_CHILD|WS_BORDER|ES_CENTER ,
                             10+205,10+3,50,20,fenetrePrincipale,(HMENU)ID_EDITBOX_1,instance,NULL);
    ici je crée une editbox

    là je m'intéresse au 2ème paramètre de CreateWindow, soit le paramètre ""

    ici il dit de ne rien mettre

    mais puis-je initialiser un entier nommé "b" à 720 soit "b=720" en l'ayant déclaré au préalable ?

    et ensuite mettre "b" en 2nd paramètre de CreateWindow ? à la place des guillemets ?

    j'ai essayé de le faire mais au moment où je le lance il met la fenêtre error windows je ne comprend pas

    en gros je pensais au code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    hEdit=CreateWindow( "EDIT",
                            b,
                             WS_VISIBLE|WS_CHILD|WS_BORDER|ES_CENTER ,
                             10+205,10+3,50,20,fenetrePrincipale,(HMENU)ID_EDITBOX_1,instance,NULL);
    => résultat voulu : l'editbox afficherait la variable, soit 720, variable qui
    pourra être modifiée par la suite

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    C'est le concept de DDX/DDV des MFC que vous voulez réinventer ?
    Utilisez les MFC alors.

  3. #3
    Invité
    Invité(e)
    Par défaut
    ???

    je voulais juste savoir si c'était faisable

    afficher une variable dans une editbox ne relève quand même pas de l'impossible ?...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    Non, il faut juste le câblé.
    En Win32, c'est à la pogne.
    En MFC, c'est un appel à UpdateData(true/false);
    Dans les autres bibliothèques graphiques, il y a plein de moyen, y compris le dataBinding bidirectionnel, mais là faut sortir WPF.
    Win32, c'est du "Close To Metal", et il faut donc se palucher la détection du changement de valeur, la conversion en chaîne de caractère et envoyer un SendMessage à votre jolie contrôle.

    En clair, si vous êtes faignant, utilisez des outils de la fin du XXème siècle et pas ceux des années 85/87 (1900).

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    Bon, on reprend de Zéro.
    Non, en Win32 vous ne pouvez pas affecter une variable à l'affichage dans une EditBox.
    Il vous faut, au minimum, encapsuler la variable pour que ces modifications soient monitorées.
    Dans cette encapsulation vous convertissez l'entier en chaine de caractère puis vous envoyez cette chaine de caractère au contrôle EditBox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SetB(int value)
    {
          if(b!=value)
          {
                char[20] buffer= itoa(value);
                SendMessage(hEdit, WM_SETTEXT,0, (LPARAM)buffer);
                b = value;
          }
    }
    "A l'arrache", pas thread-safe, tout pourri.

    En utilisant n'importe quelle librairie graphiques, vous aurez 10 fois moins de code et 100 fois moins d'emm*****.

    Donc, en résumé, pourquoi vous cassez-vous la théière, plutôt que d'utiliser l'une de ces satanées librairies graphiques.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Non, il faut juste le câblé.
    En Win32, c'est à la pogne.
    En MFC, c'est un appel à UpdateData(true/false);
    voilà ce que j'aurais du répondre :

    moi c'est pas le câblé c'est la TNT
    à la pogne ? non c'est pas là où j'habite

    mais en toute franchise et rien qu'entre nous : je préfère le VSP800 à compressions analogiques triphasées

    bonne journée

    EDIT : si c'est pas en passant par les editbox c'est pas grave : ce que je
    recherche c'est un moyen de faire augmenter ou diminuer un chiffre
    en cliquant sur mon updown control : un peu comme dans MeGUI vous
    voyez ?
    Dernière modification par Invité ; 20/10/2009 à 09h43.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Y'en a qui n'aident pas vraiment ici.

    Un truc simple:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TCHAR bufB[20];
    _stprintf(bufB, TEXT("%d"), b);
    hEdit=CreateWindow( TEXT("EDIT"),
                            bufB,
                             WS_VISIBLE|WS_CHILD|WS_BORDER|ES_CENTER ,
                             10+205, 10+3, 50, 20, fenetrePrincipale,(HMENU)ID_EDITBOX_1, instance, NULL);
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Invité
    Invité(e)
    Par défaut
    _stprintf se charge de convertir les int en string si j'ai bien compris

    en parcourant le net à droite à gauche hier j'ai vu qu'il existait l'instruction 'itoa' aussi
    mais j'ai préféré poster pour savoir s'il y avait mieux

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Si tu programmes sans unicode, je conseillerais d'utiliser sprintf() plutôt que itoa().
    Par contre, he pense que _stprintf() et _itot() se valent; dans ce cas-là je conseillerais plutôt _itot(), avec un buffer de taille fixe de 33 caractères (vu qu'il est garanti que _itot() n'écrira jamais plus).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Invité
    Invité(e)
    Par défaut
    est-ce qu'il faut charger une bibliothèque .h au début ?

    car le débugger affiche 'undefined reference to `_stprintf' '

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il faut inclure les fichiers d'en-têtes <stdio.h> et <tchar.h>.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Invité
    Invité(e)
    Par défaut
    il me manquait juste le <tchar.h>

    merci à vous

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    Je reviens à la charge car une modification de la "variable" ne sera pas automatiquement mise à jour dans l'EditBox, ce que propose n’importe quel Framework graphique.

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ici, c'est un contrôle UpDown qui devra modifier l'EditBox.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. [SQL] Puis-je insérer une variable PHP pour déterminer ORDER BY ?
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/05/2006, 01h41
  2. Insérer une variable dans une regex?
    Par Death83 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/05/2006, 11h28
  3. Ou et comment insérer une variable dans la requete?
    Par forzaxelah dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/05/2006, 11h33
  4. Probléme pour insérer une variable dans un champs
    Par BOUTRAIS dans le forum Access
    Réponses: 2
    Dernier message: 11/04/2006, 22h45
  5. Peux on insérer une variables dans une expression calculé
    Par casse.gueule dans le forum Access
    Réponses: 4
    Dernier message: 20/11/2005, 20h10

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