ComboBox und UpdateData(TRUE); verzögert
-
Hallo
Ich hab eine ComboBox in meinem Dialogfeld erstellt, wenn ich etwas darauf selektiere und es mit UpdateData(TRUE) der MemberVariable zuweisen will hänge ich immer um einen Intervall hinterher. Erst wenn ich wieder eine Selektion mache erhalte ich den Wert der vorhergehenden Selektion zurück. Wie kann ich das umgehen?Hier der Behandlungscode der betreffenden ComboBox
void Csm091Dlg::OnSelectFreq() { // TODO: Add your control notification handler code here //combo Box "1 : 103.66" UpdateData(TRUE); //Testbox sscanf(m_rfreq,"%d %c %f", &m_current_pos); char test[20]=""; sprintf(test,"%d",m_current_pos); MessageBox(m_rfreq); }Vielen Dank!
-
Was ist das

sscanf(m_rfreq,"%d %c %f", &m_current_pos);
-
ich programmiere erst seit kurzem vielleicht gibt es eine elegantere lösung aber mir ist nicht besseres eingefallen als den CString m_rfreq, in die Variablen zu splitten in denne ich sie gerne haben möchte... aber das ist ja nicht mein Problem...
-
Hallo zusammen,
bin gerade auf diesen Beitrag gestoßen, habe genau das gleiche Problem.
Wieso ist nach dem Aufruf von UpdateData(TRUE) innerhalb der
OnCbnSelchange-Fkt. die String-Membervariable der Combobox unverändert,
d.h. sie hat nicht den Wert des selektierten Strings der Combobox ???
Ich habe innerhalb der Funktion vor und nach der UpdateData() eine Kontrollausgabe gemacht, die Membervariable ist unverändert!
Erst beim zweiten Selektieren wird der String übernommen.
Mit GetLBText... geht es einwandfrei. Weiß jemand warum das mit UpdateData()
nicht funktioniert? Timingprobleme vielleicht? Solche Sachen frusten.Erwartungsvoll
Andy
-
Ich kann dazu nur die MSDN zitieren:
ON_CBN_SELCHANGE The selection in the list box of a combo box is about to be changed as a result of the user either clicking in the list box or changing the selection by using the arrow keys. When processing this message, the text in the edit control of the combo box can only be retrieved via GetLBText or another similar function. GetWindowText cannot be used.
Das heißt, alle Nachrichtenmethoden die UpdateData verwenden scheiden aus!