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 :

[MFC] Update data


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 228
    Par défaut [MFC] Update data
    Bonjour,

    J'ai quelques CEdit dans mon appli que je mets a jour pendant un fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    f()
    m_edit1 = "toot"
    updatedata(fasle);
     
    f1();/* fonction qui fait quelque chose*/
     
    m_edit2 = "toot"
    updatedata(fasle);
     
    f2();
    Mon souci est que les champs edit1 et edit2 sont mis a jour en fin de fonction f et non au cours de la fonction f
    De mémoire il existe une méthode pour forcer le "vidage" de la pompe a message mais je ne m'en rappel :s

    Quelqu'un saurait il :
    1- Pourquoi mes controls ne sont pas mis à jour pendant la fonction f
    2- Comment faire pour qu'ils soinet à jour ?

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    c'est que tes traitements doivent être bloquant pour l’interface, boucle etc...
    voir faq: http://c.developpez.com/faq/vc/?page...rk#PumpMessage

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Par défaut
    Pourquoi ne pas travailler sur les contrôle plutot que sur les valeurs
    Si m_Edit1 est du type CEdit tu pourrais simplement faire:
    m_Edit1->SetWindowText("toto");

    ou encore si ce n'est pas possible pour toi de travailler directement sur les contrôle tu pourrais aussi faire:
    GetDlgItem(IDC_EDIT1)->SetWindowText("toto");

  4. #4
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 25
    Par défaut
    Le plus propre pour mieux dissocier les traitement, ca ne resterais pas d'effectuer tes opérations de la fonction f() dans un thread?

    Il suffit de passer ta classe "d'affichage" composée des CEdit et de les controler via ce pointeur que tu passes au thread. Il y a de bons tutos sur dev.com à propos de tout ca.

    (peut etre que je suis omnubilé par les thread :p)

  5. #5
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    ben je pense que le controle est bien mis a jour au bon moment, mais pas pour l'affichage. En attente qu'un WM_PAINT arrive en fin de file à message.

    le SetWindowText est immediat si tout est dans le meme thread.

    Ce qu'il manque c'est un UpdateWindow pour rafraichir l'affichage

    Donc:
    GetDlgItem(IDC_EDIT)->UpdateWindow();

    ou alors plus radical:
    UpdateWindow() dans une procedure de la boite de dialogue

    Et ça devrait le faire

    @+

Discussions similaires

  1. Update Data in table from form
    Par line.z dans le forum Access
    Réponses: 14
    Dernier message: 01/02/2015, 21h14
  2. Flex 4 chart mouse update data
    Par kazmi dans le forum Flex
    Réponses: 3
    Dernier message: 23/07/2010, 12h15
  3. [MFC] updater un control sans les updater tous
    Par zzorglub dans le forum MFC
    Réponses: 4
    Dernier message: 14/02/2006, 17h06
  4. Réponses: 3
    Dernier message: 12/10/2005, 11h06
  5. [MFC] Error: no data exchange control
    Par LeMafiozo dans le forum MFC
    Réponses: 5
    Dernier message: 16/01/2004, 20h23

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