Probléme de détection de DCD avec classe CCom
Bonjour à tous,
J'ai un petit soucis sur une actualisation du contenu d'un contrôle que cela soit un CEdit ou un CStatic.
Je récupère une donnée sur mon port COM puis je l'affiche dans un CEdit.
Fonction qui récupère la donnée sur le port COM:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
LONG CAppDlg::OnReceiveCom(WPARAM ch, LPARAM port)
{
char *szReceive;
int nr;
szReceive = new char [(nr=(m_Com.SizeUsedInRXBuf()+1))];
memset(szReceive,0,nr);
m_Com.ReadBuffer(szReceive,nr-1);
CString str;
str.Format("%s",szReceive);
delete [] szReceive;
m_dlg_Visu->SetData(str);
return 0L;
} |
Ma fonction SetData:
Code:
1 2 3 4 5 6 7 8
|
bool CVisu::SetData(CString Data)
{
SetDlgItemText(IDC_EDT_DATA,Data.GetBuffer());
return true;
} |
Le truc c'est que ma data arrive en deux fois sur mon port ca veux dire que coup sur coup on passe dans la fonction OnReceiveCom(...), et donc que la fonction SetData est elle aussi appelée deux fois coup sur coup.
j'arrive à afficher quelque chose si je met un temps d'arrêt (Sleep()) après SetData() dans la fonction OnReceiveCom(...)
Quelqu'un pourrait il m'éclairer?
Merci d'avance