WinAPI Eingabe eines Edit-Feld ermitteln



  • Hallo Leute.

    Wie kann ich die Eingabe eines Edit Feldes ermitteln?
    Z.b. wenn man einen Button drückt, dass dann der im Edit-Feld eingegebene Text in einer MSGBOX erscheint?

    Bitte helft mir..

    Danke



  • GetDlgItemText, oder über eine Control-Variable GetWindowText.



  • Codixx schrieb:

    Hallo Leute.

    Wie kann ich die Eingabe eines Edit Feldes ermitteln?
    Z.b. wenn man einen Button drückt, dass dann der im Edit-Feld eingegebene Text in einer MSGBOX erscheint?

    Bitte helft mir..

    Danke

    case DEIN_BUTTON:
    {
      char buffer[256];
      memset(buffer, 0, sizeof( buffer ) );
      //GetDlgItemText(hWnd, IDC_EDIT1, buffer, 255); // funzt auch
      //HWND textControl = GetDlgItem(hWnd, IDC_EDIT1); // funzt auch
      //GetWindowText(textControl, buffer, 255); // funzt auch
      GetWindowText(GetDlgItem(hWnd, IDC_EDIT1), buffer, 255); // oder so..
      MessageBox(hWnd, buffer, "", 0);
    
    }break;
    


  • Dankeschön.

    Hat geklappt.



  • Ich habe gerade das gleiche Problem. Bei mir entsteht bei dem geposteten Code allerdings ein Fehler, weil die Konvertierung von char nach LPWSTR fehlschlägt.
    Weiß jemand weiter?



  • Webster schrieb:

    Ich habe gerade das gleiche Problem. Bei mir entsteht bei dem geposteten Code allerdings ein Fehler, weil die Konvertierung von char nach LPWSTR fehlschlägt.
    Weiß jemand weiter?

    fehler beim einlesen oder ausgeben?
    es gibt noch
    GetWindowTextW
    und MessageBoxW für wchar_t typen.



  • Beim einlesen direkt.



  • kommt immer nur ein buchstabe, wa.



  • Webster schrieb:

    Ich habe gerade das gleiche Problem. Bei mir entsteht bei dem geposteten Code allerdings ein Fehler, weil die Konvertierung von char nach LPWSTR fehlschlägt.
    Weiß jemand weiter?

    char? Du musst einen char*-Puffer angeben. Ein char ist nur ein einzelnes Zeichen, ein char* hingegen ist ein String. Sie dir das Beispiel nochmal an. Da wird ein char-Array (also ein String) deklariert ("char buffer[256];"). Und wenn du Unicode verwendest, solltest du wchar_t nehmen.



  • Ich habe den Code von oben 1:1 übernommen, und bekomme jetzt einen Konvertierungsfehler

    1>c:\users\matthias\documents\visual studio 2008\projects\edit box\edit box\edit box.cpp(176) : error C2664: 'GetWindowTextW': Konvertierung des Parameters 2 von 'char [256]' in 'LPWSTR' nicht möglich
    


  • Webster schrieb:

    Ich habe den Code von oben 1:1 übernommen, und bekomme jetzt einen Konvertierungsfehler

    1>c:\users\matthias\documents\visual studio 2008\projects\edit box\edit box\edit box.cpp(176) : error C2664: 'GetWindowTextW': Konvertierung des Parameters 2 von 'char [256]' in 'LPWSTR' nicht möglich
    

    Das liegt daran, dass du deinen Code auf Unicode gestellt hast (Projekt-Settings), an GetWindowText aber einen char-Puffer übergibst. Änder char in wchar_t, dann klappt es (von Unicode auf MBCS ändern ginge auch).


Anmelden zum Antworten