Editbox bräuchte Tipps
-
Sag mal was machst du denn da

Also deine Variablen sind ja
edit1 ist ein LPTSTR und edit2 ein Zeiger auf int. FILE *text; da denkt man doch da soll ein Text drin stehen und nicht das das ein ne Datei ist. Du solltest dir angewöhnen richtige Namen zu vergeben da sieht doch kein Schwein durch.
Aber gut.LPTSTR edit1=0; ... GetWindowText(GetDlgItem(hwndDlg,DID_EDITSAMPLE),edit1,39);Du versuchst hier einen Text einzulesen aber du hast doch garkein Speicher für den Text!
Mach mal aus LPTSTR edit1[40] ein TCHAR edit1[40]!menge=GetDlgItemInt(hwndDlg,DID_EDITDUMMY, edit2,20);Hast du dir die Funktion mal angeschaut was für Parameter die benötigt?
UINT GetDlgItemInt(
HWND hDlg, // handle to dialog box
int nIDDlgItem, // control identifier
BOOL *lpTranslated,
// points to variable to receive success/failure
// indicator
BOOL bSigned // specifies whether value is signed or unsigned
);Also da läuft ja einiges schief

Also nur mal so auf die SchnelleTCHAR buff[40] = ""; int menge = 0; GetWindowText(GetDlgItem(hdlg, IDC_EDIT_MENGE), buff, 39); menge = atoi(buff); GetWindowText(GetDlgItem(hdlg, IDC_EDIT_ARTNUM), buff, 39);So könnte es aussehen vielleicht.
schirrmie
-
Das mit den Variablen werde ich versuchen zu ändern.
Das GetDlgItemInt() hat bisher genau das getan was es sollte.
und das Problem ist leider immer noch das ich anscheinend zu dumm bin den Inhalt der Editbox in die Variable zu schreiben.
-
Was funktioniert denn jetzt nicht? Mit einer genaueren Fehlerbeschreibung kann man dir genauer helfen

schirrmie
-
also kompilieren läuft ohne Probleme
In der Deklaration hab ich in den String artnum den Text "Currywurst" geschrieben.
wenn ich das Programm dann starte und was in die beiden Editboxen schreibe dann z.B. in die Editbox der Artikel Nr.:"123ab56" und in die für die Menge "123"
das soll dann in eine Textdatei gespeichert werden.Da dann aber in der Textdatei dann "Artikel NR.: Currywurst Menge:123" steht denk ich das mein Fehler in der GetDlgItemText() liegt weil dort anscheinend der Inhalt der Editbox nicht in die Variable geschrieben wird.
-
Wie sieht denn den neue Quellcode aus? Oder hast du nichts geändert? Ich habe dir doch schon geschrieben was falsch ist.
Achso nochwas das geht auch so char artnum[40]= "Curywurst";
schirrmie
-
So sieht der Quelltext jetzt aus hab nicht viel geändert
wchar_t artnumbuff[40]; char artnum[40]="Currywurst"; ... artnum[40]=GetDlgItemTextW(hwndDlg, DID_EDITSAMPLE,artnumbuff,39);
-
artnum[40]=GetDlgItemTextW(hwndDlg, DID_EDITSAMPLE,artnumbuff,39);Warum übergibst du den return Value in artnum? Weist du Überhaupt was GetDlgItemTextW zurück liefert?
If the function succeeds, the return value specifies the number of characters copied to the buffer, not including the terminating null character.
If the function fails, the return value is zero. To get extended error information, callGetLastError.
Du weist aber schon das der Inhalt der Editbox in deinem fall in artnumbuff und nicht in artnum gespeichert wird oder?
schirrmie
-
au da hätte ich selbst drauf kommen können...
ich geb jetzt beim fprintf() die artnumbuff aus aber es wird nur die erste stelle in die Textdatei geschrieben. jetzt bin ich mir aber nicht sicher ob das Problem noch beim einlesen liegt oder ob es bei der Ausgabe liegt.
Hier mal der geänderte part:
GetDlgItemTextW(hwndDlg, DID_EDITSAMPLE,artnumbuff,39); Datei=fopen("/BACKUP/scanlogfile.txt","at"); fprintf(Datei,"Artikel Nr.: %s\tMenge:%i \n", artnumbuff, menge); fclose(Datei);
-
Was heist nur die erste Stelle wird geschrieben?
schirrmie
-
Wenn ich z.B. in die erste Editbox "wasd" reinschreibe landet nur das "w" in der Textdatei
-
guck dir mal deine typen an die du benutzt entweder du machst alles Unicode oder nix

also entwederwchar_t artnumbuff[40]; char artnum[40]="Currywurst"; ... artnum[40]=GetDlgItemTextW(hwndDlg, DID_EDITSAMPLE,artnumbuff,39); [b]fwprintf(...)[/b]oder
char artnumbuff[40]; GetDlgItemText(hwndDlg, DID_EDITSAMPLE, artnumbuff, 39); fprintf(...);schirrmie
-
wenn ich es nach der ersten Methode mache kommt folgende Fehlermeldung
error #2140: Type error in argument 2 to 'fwprintf'; found 'char *' expected 'const wchar_t *'.hier die Zeile dazu
wchar_t artnumbuff[40]; fwprintf(Datei,"Artikel Nr.:%s \tMenge:%i \n",artnumbuff, menge);casten hab ich auch versucht lies sich dann auch kompilieren aber da wird der reinste schwachsinn in die Textdatei geschrieben.
Wenn ich die andere Variante benutze sagt mir der kompiler
error #2140: Type error in argument 3 to 'GetDlgItemTextW'; found 'char *' expected 'wchar_t *'wenn ich dann caste bin ich nicht weiter als vorher
-
GetDlgItemTextA(hwndDlg, ID_EDITSAMPLE,artnumbuff,39);die .obj konnte ich ohne Fehler kompilieren aber zur exe kommt es nicht