Nochmal EditBoxes
-
also wieder neues problemchen:
ich will den wert den ich in eine editbox eingebe, in einer anderen editbox
auch erscheinen lassen. nur klappt das bei mir noch nich so wirklich...
ich habs über buffer( beide editboxen verwenden den gleichen) versucht, aber dann gibts nur noch zeichenmüll...
-
1. Zeig deinen Code
2. Füllst du die Edits selbst mit Daten oder gibt der User da was ein?
a) bei Usereingabe: auf EN_CHANGE reagieren, damit weißt du, wann der User den Wert im Edit geändert hat, und kannst ihn in die andere rüberkopieren.cya
-
also der code:
so hab ich den buffer initialisiert
TCHAR CaptionBuffer[100];
das gehört zur editbox in der der user was eingeben soll:
hEdit3 = CreateWindowEx(WS_EX_CLIENTEDGE,"edit", CaptionBuffer, WS_CHILD | WS_VISIBLE, 130, 25, 200, 20, hWnd, (HMENU) edit1, NULL, NULL) ; SendMessage(hEdit3, WM_SETFONT,(WPARAM)GetStockObject(DEFAULT_GUI_FONT),0);
und hierdrin sollen die daten dann erscheinen:
hEdit = CreateWindowEx(WS_EX_CLIENTEDGE,"edit", CaptionBuffer, WS_CHILD | WS_VISIBLE | WS_DISABLED, 130, 200, 200, 20, hWnd, (HMENU) edit1, NULL, NULL) ; SendMessage(hEdit, WM_SETFONT,(WPARAM)GetStockObject(DEFAULT_GUI_FONT),0);
wie geht das mit EN_CHANGE
der msdn-eintrag hilft mir nich weiter...
-
1. Du solltest CaptionBuffer auch initialisieren, so braucht es dich nicht zu wundern dass nur Müll drin steht
2. Du solltest für jedes Childwindow eine neue eindeutige ID vergeben und nicht jedesmal die gleiche verwenden
3. Bei Änderungen des Inhalts sendet eine Edit-Box eine WM_COMMAND Message an sein Parent-Window. Dabei wird in LOWORD(wParam) die ID der Edit-Box, in HIWORD(wParam) EN_CHANGE und in lParam ein Handle zu der Edit-Box gesendet. Über dieses kannst du jetzt mit GetWindowText dessen Text auslesen und z.B. per SetDlgItemText bei der zweiten Edit-Box setzen
-
@flenders: Genau so hab ich mir das vorgestellt ;).
cya