WINAPI: Werte aus Editbox einlesen (int/float) | damit rechnen + ausgeben
-
Hallo,
ich glaub ich bin zu blöd, eine einfache Rechnung mit Winapi durchzuführen.
Ich möchte, dass der Nutzer 3 Werte einliest, dann auf den Button "Ergebnis" drückt, und das Ergebnis in Feld 4 erscheint.
Ich glaube mein Problem liegt darin, dass ich die Werte als String einlese, aber als Int oder Float verarbeiten will:case ID_BTN_ERG: { int szErgebnis; char szKPM[64]; char szKO[64]; char szKR[64]; char onebuffer [256]; int kpm = static_cast<int>(szKPM[64]); // int ko = static_cast<int>(szKO[512]); GetWindowText (hKPM, szKPM, 64); /* SetWindowText (hKPM, szKPM); GetWindowText (hKR, szKR, 64 ); SetWindowText (hKR, szKR); GetWindowText (hKO, szKO, 64 ); SetWindowText (hKO, szKO); */ // char buffer[1]; // GetWindowText(GetDlgItem(hKPM, ID_KPM), buffer, 64); // szErgebnis = 100*100; // geht ... // szErgebnis = kpm; // geht nicht szErgebnis = kpm; // szErgebnis = (szKPM[64]*szKR[64]); // geht nicht // szErgebnis = (szKPM[+1]*szKR[+1]); // geht nicht sprintf (onebuffer, "%i", szErgebnis); SetWindowText (hTXTERG, onebuffer); // Rückgabewert, OK }Kann mir jemand helfen ? Beschäfte mich erst seit gestern mit Winapi, aber die meisten Grundlagen von C++ kann ich.
-
Ein Cast ist auf jedenfall der falsche Weg.
atoi, sscanf oder sowas suchst du:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html
-
Läuft nicht. Wenn ich per
GetWindowText (hKPM, szKPM, 64 );den Wert aus der Editbox holen möchte (nachdem er vom Nutzer eingetragen wurde) sagt er mir immer dass es nen Problem mit dem const char / char gibt.
Gibt es eine andere möglichkeit einen Integer / Float aus einer Editbox per Button auszulesen ?
-
Unicode-fähiges Beispiel:
TCHAR wintext[512]; // Zahl als String aus Editbox holen: GetWindowText(hWnd, wintext, 512); // Zeichenkette in Integer umwandeln: int zahl=_ttoi(wintext); // Zahl quadrieren: zahl=zahl*zahl; // Zahl wieder in String umwandeln: wsprintf(wintext,TEXT("%i"),zahl); // Zahl via MessageBox ausgeben: MessageBox(0,wintext,TEXT("Ne Zahl"),MB_OK);
-
Okay, vielen Dank, hat geklappt. Nur .. wie ist es möglich das Ergebnis der Rechnung in einer Editbox 4 anzuzeigen ? Hab es mit
SetWindowText ();versucht, funktioniert nicht.
-
"funktioniert nicht" ist keine Fehlermeldung

Zeig ein bisschen Quelltext und Fehlermeldungen bzw. beschreib das Verhalten das statt dem gewünschten Ergebnis auftritt, dann kann man helfen
-
Naja danke, läuft jetzt.