Wie addiere ich die beiden inhalte einer Textbox ?
-
Hallo,
Anfängerfrage: Wie addiere ich die beiden Inhalte von zwei Textboxen und zeige das Ergebnis in einer dritten Box an ?
Ich hab schon mit GetDlgItemText und GetDlgItemInt probiert aber ging leider nicht
-
Dann hast du was falsch gemacht :p - zeig mal deinen Code
-
Hole dir den Text/Zahl was auch immer aus deinem Feld.
Ich gehe jetzt mal davon aus das es eine zahl ist.
Den Text holst du dir mit:char text1[MAX_PATH]; SendMessage(HWND_FELD1,WM_GETTEXT,255,(LPARAM) &text1); char text2[MAX_PATH]; SendMessage(HWND_FELD2,WM_GETTEXT,255,(LPARAM) &text2);
Danach kannst dur dir deinen Text als Integer umwandeln und berechnen.
int i1 = 0; int i2 = 0; i1 = atof(text1); i2 = atof(text2); i1 = i1 + i2; char text3[MAX_PATH]; sprintf(text3,"%d",i1); SendMessage(HWND_FELD3,WM_SETTEXT,0,(LPARAM) &text3);
Besser ist die Variante mit dem Integer wert direkt im Feld.
Sodas du dir nur den Integer wert aus dem Feld holst und Berechnest.Diese Variante habe ich jetzt aber leider nicht im kopf!
Ich hoffe ich konnte dir wenigstens etwas helfen.
MFG
ReneS
-
aber es klappt noch nicht ganz
case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK: EndDialog(hwnd, 0); break; case IDC_BUTTON1: char text1[MAX_PATH]; SendMessage(HWND_FELD1,WM_GETTEXT,255,(LPARAM) &text1); char text2[MAX_PATH]; SendMessage(HWND_FELD2,WM_GETTEXT,255,(LPARAM) &text2); int i1 = 0; int i2 = 0; i1 = atof(text1); i2 = atof(text2); i1 = i1 + i2; char text3[MAX_PATH]; sprintf(HWND_FELD3,"%d",i1); SendMessage(HWND_IDD_MAIN,WM_SETTEXT,0,(LPARAM) &text3); break; }
Was mir noch fehlt ist nur welches include brauch ich für sprintf
und der fehler im SendMessage
wofür steht dein HWND__FELD1 ?für mein Textfeld ? kann nicht sein weil da krieg ich diesen fehler:
SendMessageA' : cannot convert parameter 1 from 'const int' to 'struct HWND__ *'
-
Für sprintf (aus der MSDN):
*Requirements
Routine Required header Compatibility
sprintf <stdio.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
swprintf <stdio.h> or <wchar.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
*HWND_FELDX = Handle auf deine Edit Box.
Beispiel:HWND edit1;//Handle der EditBox edit1 = CreateWindow("EDIT",EDIT,...); //Erstellung der EditBox SendMessage(...); //Auswertung/Änderung der EditBox
*SendMessageA' : cannot convert parameter 1 from 'const int' to 'struct HWND__ '
Das ist klar denn du hast kein gültiges Handle angegeben.
Siehe oben.MFG
RS