Actualisation d'un thread d'affichage MFC C++

Résolu/Fermé
siskozed Messages postés 69 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 2 septembre 2009 - 14 mai 2008 à 14:15
siskozed Messages postés 69 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 2 septembre 2009 - 4 juin 2008 à 14:31
Bonjour,

Je réalise en ce moment un programme qui récupère des données météo et qui les enregistre dans un tableau. Je veux ensuite les afficher toutes les 2 secondes dans mon IHM dans des "static text".

Comment puis je faire ?

Voici ce à quoi je pense pour la fonction executée par mon thread d'affichage :

class CAffiche : public CWinThread
{
...
private:	
	int* m_dvent;
	int* m_hygro;
	int* m_hygroB;
	int* m_hygroC;
	int* m_hygroD;
	int* m_hygroF;
	float* m_tempB;
	float* m_tempC;
	float* m_tempD;
	float* m_tempF;
	float* m_temp;
	float* m_pluie;
	float* m_vent;
...
}


int CAffiche::Run()
{
	while(1)
	{
		SetValeurs();
                  SetViewAffiche (int* hygro, int* hygroB, int* hygroC, int* hygroD, int* hygroF, float* temp, float* pluie, float* vent, float* tempB, float* tempC, float* tempD, float* tempF);
		Sleep(2000);
	}
	
	return (0);

}

void CAffiche::SetValeurs()
{
	m_pDonnees->m_pVerrouAffiche.Lock();

	//assignation des valeurs pour les serres
	*m_tempB = m_pDonnees->acquisitionReelleSerre[0][0];
	*m_tempC = m_pDonnees->acquisitionReelleSerre[0][1];
	*m_tempD = m_pDonnees->acquisitionReelleSerre[0][2];
	*m_tempF = m_pDonnees->acquisitionReelleSerre[0][3];
	*m_hygroB = (int)m_pDonnees->acquisitionReelleSerre[1][0];
	*m_hygroC = (int)m_pDonnees->acquisitionReelleSerre[1][1];
	*m_hygroD = (int)m_pDonnees->acquisitionReelleSerre[1][2];
	*m_hygroF = (int)m_pDonnees->acquisitionReelleSerre[1][3];
	//assignation des valeurs pour le climat exterieur
	*m_temp = m_pDonnees->acquisitionReelleMeteo[0];
	*m_hygro = (int)m_pDonnees->acquisitionReelleMeteo[1];
	*m_pluie = m_pDonnees->acquisitionReelleMeteo[2];
	*m_vent = m_pDonnees->acquisitionReelleMeteo[3];

	m_pDonnees->m_pVerrouAffiche.Unlock();
}


void CAffiche::SetViewAffiche( int* hygro, int* hygroB, int* hygroC, int* hygroD, int* hygroF, float* temp, float* pluie, float* vent, float* tempB, float* tempC, float* tempD, float* tempF)
{							
	m_hygro = hygro;
	m_hygroB = hygroB;
	m_hygroC = hygroC;
	m_hygroD = hygroD;
	m_hygroF = hygroF;
	m_tempB = tempB;
	m_tempC = tempC;
	m_tempD = tempD;
	m_tempF = tempF;
	m_temp = temp;
	m_pluie = pluie;
	m_vent = vent;

	CMyProjectDoc * m_pDonnees;
}



Mais cette méthode ne marche pas... Unhandled exception...

2 réponses

siskozed Messages postés 69 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 2 septembre 2009 86
4 juin 2008 à 14:31
bon, c'est bon j'ai trouvé, j'étais sur une mauvaise piste avec ma classe CAffiche. En fait, ma classe CAffiche n'est rien d'autre que ma classe C...View Je dois faire un OnTimer en passant en parametre 5000 pour qu'il effectue ca toutes les 5 secondes. et je n'ai plus qu'à faire des égalités standards en allant chercher le tableau de la classe C...Doc par un pointeur sur classe.

Voili voilou
1
siskozed Messages postés 69 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 2 septembre 2009 86
20 mai 2008 à 15:22
y'a quelqu'un qui peut m'aider s'il vous plait c'est urgent ?
0