Ein String in einen Dezimahlwert verwandeln
-
Ich möchte aus einem Editfeld einen Dezimalwert auslesen. Muss ich den Inhalt erst als String auslesen und anschliessend in einen Dezimalwert verwandeln, falls ja wie, oder kann ich den Wert direkt als Dezimalwert von dem Editfeld auslesen?
Im Voraus Danke für alle Antworten
-
Du musst es zuerst als String einlesen und dann in eine Zahl umwandeln (mit atoi() z.B.)
-
Du könntest(!) aber das Editfeld auch mit GetDlgItemInt() abfragen, dann haste gleich nen Integer-Wert...
-
3. möglichkeit
subclassing der editbox, bietet sich besonders bei float oder double werten an.
LRESULT CALLBACK EditWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CHAR: // kannst natürlich anders machen if(wParam == 8) break; // backspace zulassen if(wParam == 46) break; // punkt zulassen if((wParam < 58) && (wParam > 47)) // zahlen break; return 0; } return CallWindowProc((WNDPROC)g_PrevWndProc, hwnd, msg, wParam, lParam); }