Frage in Winprog?

Hallo!
brauche wieder euere Unterstützung? wie kann ich auf den Inhalt eines EDIT-Fenster zugreifen und in einem anderen EDIT-Fenster kopieren?
hier ist mein Code:

lay_Window->hWnd = CreateWindowEx(0L, szAppName, szTitle, WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0,0, 640, 477, NULL, NULL, NULL, NULL);
lay_Window->hKarte = CreateWindowEx(0L, szChildName,"",WS_HSCROLL|WS_VSCROLL|ES_AUTOHSCROLL|ES_AUTOVSCROLL|WS_BORDER | WS_CHILD | WS_VISIBLE,0, 0, 512 ,410 , lay_Window->hWnd, NULL, NULL, NULL);
lay_Window->hWerte = CreateWindowEx(0L, szChild2Name,"",WS_BORDER | WS_CHILD | WS_VISIBLE,0, 410, 640 ,67 , lay_Window->hWnd, NULL, NULL, NULL);

lay_Window->hCancel= CreateWindowEx(0L, „BUTTON“,„Cancel“,BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE,515, 360, 50, 18,lay_Window->hWnd, (HMENU)3, NULL, NULL);
lay_Window->hOk = CreateWindowEx(0L, „BUTTON“,„Ok“,BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE,580, 360, 50, 18,lay_Window->hWnd, (HMENU)4, NULL, NULL);
lay_Window->hEdit1 = CreateWindowEx(0L, „EDIT“, „4939“, WS_BORDER|WS_CHILD | WS_VISIBLE , 515, 50, 50, 18, lay_Window->hWnd, (HMENU)5, NULL, NULL);
lay_Window->hEdit2 = CreateWindowEx(0L, „EDIT“, „7222“, WS_BORDER|WS_CHILD | WS_VISIBLE , 570, 50, 40, 18, lay_Window->hWnd, (HMENU)6, NULL, NULL);
lay_Window->hEdit3 = CreateWindowEx(0L, „EDIT“, „00853“, WS_BORDER|WS_CHILD | WS_VISIBLE , 515,80 , 50, 18, lay_Window->hWnd, (HMENU)7, NULL, NULL);
lay_Window->hEdit4 = CreateWindowEx(0L, „EDIT“, „ED“, WS_BORDER|WS_CHILD | WS_VISIBLE , 570, 80, 40, 18, lay_Window->hWnd, (HMENU)8, NULL, NULL);
/*---------------- Zugriff Auf EDIT-Fenster „4939“ und Inhalt in EDIT Fenseter „ED“ kopieren----------------------*/
int len = GetWindowTextLength(GetDlgItem(lay_Window->hWnd, 4939));
if(len > 0)
{
int i;
char* buf;

buf = (char*)GlobalAlloc(GPTR, len + 1);
GetDlgItemText(lay_Window->hWnd,4939 , buf, len + 1);

//… do stuff with text …

SendDlgItemMessage(lay_Window->hWnd, ED, LB_SETITEMDATA, 0, (LPARAM)buf);

GlobalFree((HANDLE)buf);
}

Danke
NR

Hallo,

Vorweg: VIELZUVIEL code für deine eigentlich kleine Frage :smile:

int len = GetWindowTextLength(GetDlgItem(lay_Window->hWnd,
4939));

So gehts schonmal nicht, die ID eines Fensters wird nicht durch dessen Text sondern den HMENU-Parameter bestimmt. Genauso ist dein Fenster kein Dialog, also kannst du schonmal GetDlgItem() nicht verwenden. Da du aber die einzelnen Handles für jedes Fenster schon besitzt, kannst du dir ganz einfach deren Inhalt holen.

int laenge = GetWindowTextLength(lay_Window->hEdit2);
char* text = new char[laenge];
GetWindowText(lay_Window->hEdit2, text, laenge);
delete[] text;

Ums in ein anderes Fenster zu setzen:
SetWindowText(lay_Window->hEdit3, text); // Dann aber das delete[] vorher wegmachn :smile:

bye,
Christoph