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 :

CEdit forcer rafraichissement


Sujet :

MFC

  1. #1
    Membre éclairé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut CEdit forcer rafraichissement
    Bonjour,

    Je voudrai savoir comment forcer le rafraichissement d'un CEdit après avoir changer sa valeur via la fonction SetWindowText.

  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 inutile...
    SetWindowText fait le rafraichissement.

  3. #3
    Membre éclairé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    oki merci.

    mais mon problème est le suivant:
    j'ai une liste 1 dans laquelle je selectionne des éléments d'un base.
    Lorsque j'en sélectionne un j'affiche des informations dans des CEdit plus d'autre dans une liste 2.
    Lorsque j'appui en continue sur la flèche du bas de ma liste 1 ma liste 2 est rafraichi mais pas mes CEdit. Sa le fait également si j'appui vite sur la flèche du bas.

  4. #4
    Membre éprouvé Avatar de bobmidou
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 121
    Par défaut
    salut

    utilises peut être :
    Bonne chance

  5. #5
    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
    ton problème doit être lié a la vitesse de rafraichissement trop élevée.
    encore que j'ai un doute sur le fait que le CEdit n'arrive pas a suivre la cadence.
    en fin de sélection l'edit est à jour de la dernière valeur ?
    si ce n'est pas le cas c'est l'appel ou la méthode d'appel a SetWindowtext qui est erroné.

  6. #6
    Membre éclairé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    il est toujours de la dernière valeur.

    Pour le taux de rafraichissement je ne fait les test que sur ma machine (peut de RAM) et j'utilise Visual studio 6 SP6

    Je vai essayer de faire une liste et juste un CEdit pour voir s'il suit la cadance.

  7. #7
    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
    montre nous quand même le code qui correspond a la mise à jour de l'edit.

  8. #8
    Membre éclairé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Désolé pour hier soir mais j'avai débauché.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	m_txtIdent.SetWindowText(m_curObject.GetIdent());
    GetIdent() : retourne une CString

  9. #9
    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
    je me doute que tu fais SetWindowText.
    ce qui m'intéresse c'est le contexte d'appel de cette fonction..

  10. #10
    Membre éclairé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Voici la fonction qui est appelé sur le changement de ligne dans ma liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    //{{AFX_MSG_MAP(CObjectTab)
    	ON_LBN_SELCHANGE(IDC_LST_IDENT, OnListIdentSelChanged)
    //}}AFX_MSG_MAP
     
     
    void CObjectTab::OnListIdentSelChanged()
    {
    	int		iIndex = m_lstIdent.GetCurSel();
    	CString strIdent;
    	m_lstIdent.GetText(iIndex, strIdent);
     
    	CObject	Object;
    	bool	bIsOk = m_pFunct->SelectAnObject(strIdent, Object, CFunctEditor::ICAO );
    	if ( !bIsOk )
    	{
    		CString	strErrorObjectSelect;
    		strErrorObjectSelect.LoadString(IDS_ERR_SEL_AIRPORT);
    		AfxMessageBox(_T(strErrorObjectSelect));
    		return;
    	}
    	ViewObject(Object);
    }

  11. #11
    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
    le setWindowtext est effectué danq quelle fonction ? SelectAnObject ?
    on va procéder autrement:
    il n'y a pas de boucle dans le code associé a Setwindowtext ?
    tu as essayé de mettre un TRACE des valeurs en debug pour vérifier que toutes les valeurs sont affichées correctement ?

  12. #12
    Membre éclairé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Désolé ce matin je suis pas réveillé.

    le SetWindowText est appelé dans la fonction ViewObject() qui permet d'affiché à l'écran toute les information d'un Object (Object c'est pour assuré la confidentialité de mon projet).

    il y a une boucle dans la fonction ViewObject permettant d'afficher les SubObject dans la liste2 (Liste étant afficher avant les CEdit)
    Je n'ai pas effectué de trace en debug.

  13. #13
    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
    on peut voir cette boucle ?
    décidément il faut te soutirer au forceps les informations pertinentes
    pour infos une boucle empêche les messages de parvenir a l'application
    et donc un rafraichissement des contrôles.
    voir faq:http://cpp.developpez.com/faq/vc/?pa...rk#PumpMessage

  14. #14
    Membre éclairé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    La sa va être compliqué car j'utilise la BCG soft pour l'IHM et la liste2 est plustôt une BCGPGridCtrl. C'est pour sa que je donne pas tous le code en une seule fois.

    Mais le fait d'avoir commenter la boucle a augmenté la vitesse de rafraichissement des CEdit.

    pour infos une boucle empêche les messages de parvenir a l'application
    et donc un rafraichissement des contrôles.
    Le principe est de vider la pile/file/queue de message ?

  15. #15
    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
    non,
    de dispatcher les messages a destination de l'application.

  16. #16
    Membre éclairé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    oki Merci de ton aide sa se rafraichie plus rapidement mais pas encore tout le temps. Mais je vai travailler dessus et je finirai bien par trouver.

    Par contre j'ai pas bien compris le coup du Dispatché ( question de débutant )
    L'appli recoit un ensemble de message qu'elle doit envoyer à la CWnd concerné ?

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

Discussions similaires

  1. [SERVLET] Forcer le rafraichissement d'une servlet
    Par Finrod dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 03/05/2007, 11h03
  2. Forcer rafraichissement du formulaire sous Firefox
    Par Marion_ dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2007, 10h15
  3. Réponses: 4
    Dernier message: 08/10/2006, 15h16
  4. [MFC] CDialog -> forcer le rafraichissement
    Par Rafoo dans le forum MFC
    Réponses: 3
    Dernier message: 05/09/2006, 16h51
  5. [JPanel] Forcer le rafraichissement d'un sous panel
    Par tomca dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 18/05/2005, 16h49

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