Editbox bekommt nur Zeichensalat
-
Hallo,
ich habe ein Problem mit dem ganzen String wirrwarr

Ich möchte eine Zahl in ein EditFeld schreiben:
SetDlgItemText(hWndDlg, IDC_EDIT1, int);
Wäre mir ja am liebsten, aber da muss eben ein String rein (LPCWSTR). Und da hab ich eben folgendes gemacht:
int ergebnis = 42;
std::basic_stringstream<wchar_t> erg(L"");
erg << ergebnis;Und dann erg.str().c_str() verwendet als String, der dort eingetragen wird. Ich bekomme aber keine Zahl sondern Zeichensalat ._." Weiß einer wieso? und Wie ich das umgehen kann?
-
char bla[5]; sprintf(bla,"%i",ergebnis);greetz KN4CK3R
-
KN4CK3R schrieb:
char bla[5]; sprintf(bla,"%i",ergebnis);greetz KN4CK3R
Wenn schon, dann eher wchar_t, er verwendet doch Unicode...
-
kein schlechter ansatz, brauche das allerdings für wchar_t*

-
Und warum funzt's nicht mit stringstream?
-
Ich bekomme irgendwelche chinesischen Schriftzeichen anstatt meiner gewünschten Zahl zu sehen

Habs mal damit jetzt probiert:
int ergebnis = 42;
wchar_t test[6];
swprintf(test, 6, L"%i", ergebnis);Es passiert nix. Also in die Kombowert wird nun gar kein Wert eingetragen.
-
Ich glaube das Problem liegt ganz wo anders

Und zwar will die SetDlgItemText(hWndDlg, IDC_EDIT1, str);
an dritter Stelle einen LPCWSTR. Vllt gibts da n paar Umrechungsschwierigkeiten?
-
weiß denn keiner rat?

-
Also bei mir funzt das:
HWND editControl = GetDlgItem(dialogHandle, IDC_EDIT1); float f = 123.4f; std::wstringstream wss; wss << f; // Sowohl das ... SetWindowTextW(editControl, wss.str().c_str()); // ... als auch das funzt SetDlgItemTextW(dialogHandle, IDC_EDIT1, wss.str().c_str());
-
SetDlgItemInt