Frage in Winprog?

Von: , Frage gestellt am Fr, 29. Apr 2005

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

1 Antworten zu dieser Frage

  1. Antwort von nach 2 Tagen 0 hilfreich
    Re: Frage in Winprog?

    Hallo,

    Vorweg: VIELZUVIEL code für deine eigentlich kleine Frage :) 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 :)

    bye,
    Christoph

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!