Editboxinput in Variable speichern ?!
-
Hallo Leutz,
1. ich würde gerne meine Values aus meiner Inputbox auslesen und in eine Variable speichern ... Wie mache ich das?2. Und wie kann man bei Inputboxen den Passworttyp - sprich dass man seine Eingaben nicht sieht (also : *******) - aufrufen ?
3. Wie kann man Variablen, die in ChildProc's erzeugt wurden ans WndProc weitergeben ?
ThX für eure Zeit! MFG:
n()()bi
-
sag mal, hast du die MSDN? da steht alles über Objekteigenschaften.
sry, aber wenn du weiterhin mit der WinAPI arbeiten willst (du hast ja erzählt, das du erst angefangen hast) kommst du nicht um die MSDN herum, es sind zu viele Fragen!
-
Hier ein paar Stichworte:
1. GetDlgItemText
2. ES_PASSWORD
3. SendMessage, GetParent
-
Ich benutze die MSDN-Libary von Microsoft (msdn.microsoft.com) ... Doch leider verstehe ich ziemlich viel von dieser Libary nicht! Teils liegt es an den verschiedenen Variablen-Arten, teils auch am Sprachverständnis !
Könntet ihr mir bitte zeigen, wie man den Text einer einfachen Editbox ausließt und in einen String speichert?
Meine Editbox:
case WM_CREATE: { char *username = NULL; hLogin_Username = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", username, WS_CHILD | WS_VISIBLE, 100, 70, 150, 23, hWnd, NULL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); free(username); return 0; }Diese Values möchte ich nun nach einem Click auf einen Button auslesen und in einen String speichern:
case WM_COMMAND: { if (lParam == (LPARAM)hButton) { if (HIWORD(wParam) == BN_CLICKED){ /* -- Hier benötige ich den Code -- */ } } return 0; }Ich hoffe mir kann jemand helfen und ThX an die, dies versucht haben ^- ! MFG:
n()()bi
-
Mit GetWindowText() kommste an den Text des Edit-Controls...
-
Das weiss ich - vom Tutorial, doch ich verstehs nicht !
Wie wärs denn bitte mit einem kleinen Beispiel - bitte mit Erklärung?! Wär mir ne große Hilfe ! THX !
-
Lern coden.
-
Ihr seit mir nicht wirklich eine Hilfe !? Aber ok, ich habe n Quellcode erstellt, der aber immer, wenn ich ihn aufrufe, n fetten Windows Fehler - sprich : Bericht an Microsoft senden - bringt!
Hier der Quellcode:
case WM_CREATE: { char *username = NULL; hLogin_Username = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", username, WS_CHILD | WS_VISIBLE, 100, 70, 150, 23, hWnd, NULL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); free(username); return 0; } case WM_COMMAND: { if (lParam == (LPARAM)hLogin_Button) { if (HIWORD(wParam) == BN_CLICKED){ string userdir; char *usernametemp; FILE *openuserdat; int ilength; ilength = GetWindowTextLength(hLogin_Username); GetWindowText(hLogin_Username, usernametemp, ilength+1); userdir = "users/"; userdir += usernametemp; userdir += "/user.dat"; MessageBox(NULL, userdir.c_str(), "Fehler", MB_ICONINFORMATION | MB_OK); } } return 0; }Naja, immer wenn ich die Messagebox aufrufen will, kommt dieser Microsoft-Fehler Bericht und das Proggy beendet! Ich hoffe mal, dass jemand mir diese Antwort posten kann, bis jetzt waren dass keine richtigen Antworten (die MSDN hilft mir nicht weiter und Sprüche wie "lern coden", sind ja wohl sehr sinnlos)!?
Gez:
n()()bi
-
Du solltest für usernametemp schon noch irgendwo (vor GetWindowText) Speicher reservieren

-
username bei WM_CREATE solltest du auch initialisieren. Dann ist das free(username) übrigens überflüssig.
Ein gutgemeinter Tipp: Lern erstmal C++-Grundlagen. Du vermischst auf schreckliche Weise C mit C++-Code und scheinst elementare Sachen wie C-Strings (char*) nicht zu beherrschen.