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 :

CallBack


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 116
    Par défaut CallBack
    Bonjour,

    voici mon interrogation :

    je code en ce moment un projet MFC.
    derrière l'interface, j'ai un programme qui trourne en continu.
    Ce programme envoit des callback qd les données sont mise à jour.

    Existe-t-il sous Visual C++ un mécanisme qui permet d'exploiter ces CallBack pour mettre à jour les différents champs de mon interface?

    merci

  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,
    avec un message privé a l'ihm par exemple.
    ou un message au contrôle (SetWindowText) .
    faq:
    http://c.developpez.com/faq/vc/?page...PrivateMessage

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 116
    Par défaut
    ok merci

    une autre question, mais la plus sur la conception d'une appli MFC.

    Comme je t'ai dit, j'ai un essemble de traitement qui se lance permettant de mettre à jour les données de mon interface.

    pour l'instant le lance ces traitement en appuyant sur un bouton et je fais cela :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    void CIConsoleDlg::OnRun() 
    {
    	// TODO: Add your control notification handler code here
    	interfaceDlg->IFederate->waitSynchroPointEnd();
    	GetDlgItem(IDC_STATIC_Status)->SetWindowText("Status : Simulation en cours");
    	interfaceDlg->tmp=0;
     
    	int o =0;
     
    	while (interfaceDlg->My_MasterPile)
    	{
    		interfaceDlg->UpdateObjet(interfaceDlg->My_MasterPile);
     
    		GetDlgItem(IDC_STATIC_Status)->SetWindowText("****************");
     
    		interfaceDlg->dll_next (&interfaceDlg->My_MasterPile);
    	//	updateDataU();
    		if(interfaceDlg->My_MasterPile == NULL)
    			interfaceDlg->dll_first(&interfaceDlg->My_MasterPile);
     
                    //Temporise 5 secondes
    		time(&start);
    		do {
    			time(&finish);
    		}while(difftime(finish, start) < 5);
    	}
     
    	GetDlgItem(IDC_STATIC_Status)->SetWindowText("Status : Simulation en Terminé");
     
     
     
    }
    Comme tu peux t'en douter, quand je me trouve dans la boucle while,
    mon application est figée. Plus aucune interraction n'est possible.

    Comment remédier à ce problème?

  4. #4
    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
    il faut rajouter une pompe a messages au milieux du traitement.
    faq:
    http://c.developpez.com/faq/vc/?page...rk#PumpMessage

  5. #5
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    Moi je te conseillerai de metre a jour ton interface directement depuis ta callBack.
    Ta callBack appartient a un autre thread, donc il suffit que tu recupere un pointeur sur ton interface pour la metre a jour. Mais attention si tu programme avec different thread il faut que tu lock tes données, si plusieurs ecritures ont la posibilité d'etre realiser en paralelle.

Discussions similaires

  1. Fonction callback
    Par saibe dans le forum Linux
    Réponses: 4
    Dernier message: 19/01/2012, 10h41
  2. [Débutant] fonction CALLBACK
    Par tlt dans le forum MFC
    Réponses: 2
    Dernier message: 29/10/2004, 16h55
  3. Callback
    Par el_diablos dans le forum Langage
    Réponses: 2
    Dernier message: 09/07/2004, 08h48
  4. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    Réponses: 8
    Dernier message: 02/03/2004, 11h42
  5. [MFC] Un callback dans des MFC ...
    Par elsargento dans le forum MFC
    Réponses: 3
    Dernier message: 18/02/2004, 16h04

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