->Caption / ->Text ect. = Error



  • Hi,
    also zuerst muss ich sagen, dass ich neu hier im Forum bin ^^.
    Ich hab mir schon son bissl Cpp angeeignet und verstehe den Grund eigentlich ganz gut.
    Ich will nicht lang drum rum reden:

    Ich möchte dass er mir via Buttonklick den Text via MessageBox ausgibt, der in einem edit-Window steht. Soweit ist alles klar. Habe dann gleich losgegooglet wie man den Text eines WNDs rausbekommt und bin auf folgede Varianten gestoßen:

    Label1->Text,
    Label1->Caption,
    GetWindowText(...),
    EM_ ... ,
    WS_GETTEXT

    Leider funktioniert nichts von allem.
    Ich bekomm fast immer einen Ausgabewert von 0.

    Hier ein bisschen Text von meinem Programm:

    #include <windows.h>
    #include <stdio.h>
    
    ...
    ...
    
    case WM_CREATE:
      textbox1 = CreateWindow("edit", "",
         WS_CHILD | WS_VISIBLE,
         10, 10, 40, 16,
         hwnd, (HMENU)1, (HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE), NULL);
    
    ...
    ...
    
    case WM_COMMAND:
      if(LOWORD(wParam) == 3) {
         char str[50];
         sprintf(str, "%i", ...);
         MessageBox(hwnd, str, "MsgBoxTitle", MB_OK);
      }
    
    ...
    ...
    return 0;
    

    Ich hoffe man kann mir helfen 🙂

    Gruß,
    paSe



  • Ähm also Dein Code ist auch falsch 😉 .

    // ...
         sprintf(str, "%i", ...);
    // ...
    

    Damit bekommst Du nicht den Text aus dem Fenster.

    Mit GetWindowText geht es so (der Einfachheit mal ohne dynamische Speicherallokierung):

    TCHAR szCaption[1024];
    GetWindowText(textbox1, szCaption, sizeof(szCaption) / sizeof(szCaption[0]));
    MessageBox(hwnd, szCaption, TEXT("MsgBoxTitle"), MB_OK);
    

    Das Makro TEXT("...") sorgt dafür, dass Du sowohl mit UNICODE als auch mit ANSI arbeiten kannst (genau wie TCHAR).



  • Danke du hast mir sehr geholfen!


Anmelden zum Antworten