Einzelne Steuerelemente Updaten

Hallo,

Wenn ich eine Textbox mit einem Wert füllen möchte, erstelle ich eine Membervariable (z.B. m_iEdit) und verwende folgenden Quellcode.

Code:
m_iEdit = 10;
UpdateData(FALSE);

Allerdings ist das nicht besonders schön, da allen Steuerelementen, die aktuell in den befindlichen Variablen zugewiesen werden. Daher möchte ich nur einzelne Elemente Updaten.

Dazu habe ich folgenden Code verwendet.

Code:
m_iEdit = 10;
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT);
pEdit->UpdateData(FALSE);

Ich könnte schwören, dass es funktioniert hat. Jetzt tut sich aber nichts mehr, obwohl ich an diesem Codefragment nichts geändert habe.

Gruß,
WilliamSpiderWeb
 
Ich könnte schwören, dass es funktioniert hat.
Hallo,
kann eigentlich niemals funktioniert haben, weil es die Verknüpfung mit der Variablen "m_iEdit" nur im Dialog, aber nicht im Edit-Control selbst gibt. Bei selektiver Aktualisierung geht meines Wissens nur die direkte Zuweisung via SetWindowText() bzw. SetDlgItemText().

Gruß
MCoder
 
Danke für die Antwort.
Dann muss ich wohl an anderer Stelle noch ein UpdateData() gehabt haben, ohne es gesehen zu haben... oder so ähnlich.

Der folgende Code weist der Editbox einen Text zu, aber fehlerhaft

Code:
int iValue = 10;
char Buff[5];
CEdit* pEdit;

_itoa_s(iValue, Buff, 5, 10);
pEdit = (CEdit*)GetDlgItem(IDC_EDIT);
pEdit->SetWindowText((LPCTSTR)Buff);

der zugewiesene Text besteht lediglich aus dem rechteckigen Sonderzeichen, wenn ein nicht bekannter Zeichensatz verwendet wurde.

Was muss ich dabei noch einmal ändern?

Gruß,
WilliamSpiderWeb
 
Könnte ein UNICODE-Problem sein; also statt "char" besser "TCHAR" und statt "_itoa_s" besser "_itot_s" verwenden. Du könntest auch ganz auf die C-Funktionen verzichten:
C++:
int iValue = 10;
CString str;
str.Format(_T("%d"), iValue);
SetDlgItemText(IDC_EDIT, str);
Gruß
MCoder
 
Zurück