Actualisation d'un thread d'affichage MFC C++
Résolu
siskozed
Messages postés
69
Statut
Membre
-
siskozed Messages postés 69 Statut Membre -
siskozed Messages postés 69 Statut Membre -
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 :
Mais cette méthode ne marche pas... Unhandled exception...
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...
A voir également:
- Actualisation d'un thread d'affichage MFC C++
- Affichage double ecran - Guide
- Windows 11 affichage classique - Guide
- Pinterest problème affichage ✓ - Forum Réseaux sociaux
- Affichage outlook trop petit ✓ - Forum Outlook
- Agrandir la taille d'affichage de toute l'interface OUTLOOK 2010 - Forum Outlook
2 réponses
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
Voili voilou