GetWindowText zu Integer umwandeln!!!
-
Hallöchen.
Ich will aus einer Editbox zahlen auslesen, um mit diesen dann weiterzuarbeiten.
Ich kann die aber mit atoi nicht konvertieren. Ich habe jetzt folgenden Code:n = atoi(GetWindowText(hEditN, buffer[0],3)); k = atoi(GetWindowText(hEditK, buffer[1],3)); p = atof(GetWindowText(hEditP, buffer[2],3));Der Fehler ist invalid conversion from int to char.
atoi verlangt ja eigentlich Zeiger, aber damit geht es auch nicht.Hat eventuell jemand einen Lösungsvorschlag???
-
Was soll deb "buffer" sein? Wenn es "buffer[3]" ist, dann sind die Aufrufe von GetWindowText falsch.
Also mach bitte:TCHAR szBuffer[100]; GetWindowText(hWnd, szBuffer, 100);Und dann kannst Du "szBuffer" umwandeln.
-
OK, hab das jetzt gemacht und bekomme keine Fehlermeldung mehr.
Trotzdem ist das Ergebnis falsch:if (lParam == (LPARAM)hButtonSolve) { if (HIWORD(wParam) == BN_CLICKED){ GetWindowText(hEditN, buffer1,3); GetWindowText(hEditK, buffer2,3); GetWindowText(hEditP, buffer3,3); n = atoi(buffer1); k = atoi(buffer2); p = atof(buffer3); sol = binomVT(n, k, p); sprintf(solution, "%.4f" , sol); SetWindowText(hEditSol, solution); } }Wenn man auf den Button klickt, soll er aus den 3 editfeldern über getwindowtext über float binomVT(int,int,float) was ausrechnen und in hEditSol anzeigen. Hier vielleicht nochmal die Deklaration der Variablen:
char buffer1[4]={}, buffer2[4]={}, buffer3[4]={}; static HWND hButtonEnd, hButtonSolve; static HWND hEditN, hEditK, hEditP, hEditSol; HDC hDc; static RECT rectN, rectK, rectP; PAINTSTRUCT ps; float sol; char solution[6]; int n, k; float p;Sieht vielleicht jemand den Fehler?
Wenn ich das Programm ausführe und den Button drücke, steht immer nur 1.0000 in dem Fenster, aber es sollte immer ne gebrochene Zahl zwischen 0 und 1 rauskommen.
-
OK sorry. Hat sich schon erledigt.
Hab vergessen, dass die Länge des chars auch wieder bei getwindowtext beachtet werden muss.Danke für die Hilfe Jochen!!!