MFC Edit Control - Rafraichissement des données

cs_lacousine Messages postés 58 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 13 juillet 2007 - 26 oct. 2004 à 05:09
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 27 oct. 2004 à 18:47
dans mon programme, je récupère une donnée que je veux affecter à mon TextBox. Voici comment je m'y prend :

GetDlgItem( IDC_TextBox_Glissoire )->SetWindowText( ConversionIntToCString( iNbRejetOrange ) );

Mon problème est que ma donnée ne s'inscrit pas dans mon TexBox. La facon dont j'ai trouvé pour faire apparaitre les données est de faire :

AfxMessageBox("");

mais bon je ne trouve pas ca élégant !!! je voudrais trouver une facon de faire un rafraichissement de ma donnée sans faire apparaitre un AfxMessageBox.

Avez-vous des solutions... ( j'ai essayé déjà plusieurs choses jusqu'a maintenant donc Invalidate, Refresh, UpDateData )

Mieux vaut être blonde et poser des questions que de rester ignorante !!!!

4 réponses

cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
26 oct. 2004 à 12:11
CString Message("");
Message.Format("%d",iNbRejetOrange);

GetDlgItem( IDC_TextBox_Glissoire )->SetWindowText(Message);

Sinon , es-tu sûr d'envoyer un CString ( voir au debug).

A+
0
ricky78 Messages postés 126 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 11 juillet 2006
26 oct. 2004 à 17:07
N'oublie pas de raffraichir tes données dans ton CEdit

GetDlgItem( IDC_TextBox_Glissoire )->UpdateData(TRUE);

GetDlgItem( IDC_TextBox_Glissoire )->SetWindowText(Message);

GetDlgItem( IDC_TextBox_Glissoire )->UpdateData(FALSE);

tu peux aussi

UpdateData(TRUE);
GetDlgItem( IDC_TextBox_Glissoire )->SetWindowText(Message);
UpdateData(FALSE);

bon courage;
0
cs_lacousine Messages postés 58 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 13 juillet 2007
26 oct. 2004 à 21:55
Voici mon code original :

void CLaFile_MFCDlg::OnBnClickedBouttonquitter()
{
if( m_bDemarrer )
{
Statistique();
}
OnCancel();
}

et

void CLaFile_MFCDlg::Statistique()
{

// nb pucks sur la glissoire
int iNbRejetOrange = oGestionFile->oRejetOrange->GetNbPucksDansLaFile();

//rejet sur la glissade!!!
GetDlgItem( IDC_TextBox_Glissoire )->SetWindowText( ConversionIntToString( iNbRejetOrange ) );

}

CString CLaFile_MFCDlg::ConversionIntToString( int iValeur )
{
CString sValeur;
sValeur.Format("%d",iValeur);
return sValeur;
}

Et voici la solution ainsi que que l'explication !!!

void CLaFile_MFCDlg::OnBnClickedBouttonStatistiques()
{
Statistique();
}

void CLaFile_MFCDlg::OnBnClickedBouttonquitter()
{
OnCancel();
}

J'ai du créer un nouveau bouton qui fait appel aux statistiques de production, car dans le bouton quitter original, après avoir faire la lancer un drapeau sur les Edit Box qui ont été modifié, l'application ne terminait pas du processus de statistique ce qui empêchait de rafraichir les données... à cause du OnCancel(). Il faut absolument séparer c'est 2 fonctions.

Merci pour vos solutions. J'avais déjà essayé UpdateDate() , Invalidate, ....

la solution que voici, vient d'un de mes professeurs et c'est son explication à ce problème.

:)

Mieux vaut être blonde et poser des questions que de rester ignorante !!!!
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
27 oct. 2004 à 18:47
utilisation de UpdateData
pour faire l'échange de donnée appli / fenetre
true fenetre => prog
false fenetre <= prog

++
Magic Nono: l'informagicien! 8-)
0
Rejoignez-nous