Kann keinen Text in Edit-Control eingeben



  • Hey,
    ich habe ein kleines Problem.
    Und zwar versuche ich auf meinem Fenster ein Edit-Control anzeigen zu lassen.
    Dazu habe ich folgenden Code in WndProc:

    static HWND hwndEdit;
        static TCHAR text[30];
    
        switch (msg) {
               case WM_CREATE:
                    {
                   	hwndEdit = CreateWindow(TEXT("Edit"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 20, hwnd, (HMENU) ID_EDIT, NULL, NULL);
                    break;
                    }
        }
    

    Das Control wird zwar angezeigt, jedoch kann ich keinen Text eingeben... Einfügen funktioniert... Woran liegt das? (hatte das schonmal so gemacht, da hatte es funktioniert, ich muss irgendwo einen Fehler haben)

    MfG,
    -haiyyu_



  • Also ich würd ma spontan sagen der braucht noch ne HINSTANCE..

    //probier das mal
    hwndEdit = CreateWindow(TEXT("Edit"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 20, hwnd, (HMENU) ID_EDIT, GetModuleHandle(NULL, NULL);
    


  • //sry.. klammer vergessen
    hwndEdit = CreateWindow(TEXT("Edit"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 20, hwnd, (HMENU) ID_EDIT, GetModuleHandle(NULL), NULL);
    


  • sry man
    vergiß meinen kram da passt was anderes
    (man was fürn kack hab ich davorgeschlagen O.o)



  • Hey,
    danke für die Antwort.
    Habe es versucht, leider kann ich immer noch nichts eingeben.

    MfG,
    -haiyyu



  • postet bitte (ausnungsweise) mal deinen/MEEEEEHR quellcode
    dann schau ich ma



  • Hey,
    habe es gelöst 🙂
    Es hat ein TranslateMessage(&msg) gefehlt.

    MfG,
    -haiyyu_



  • ^^



  • Hey,
    ich möchte jetzt keinen neuen Thread erstellen, deshalb frage ich hier.
    Ich suche eine Windows-Nachricht, die ausgelöst wird, wenn der Benutzer das Fenster vergrößert/verkleinert. WM_RESIZE gibt es leider nicht und Google will mir auch nicht helfen 😞

    MfG,
    -haiyyu_



  • WM_SIZE



  • Hey,
    danke, das funktioniert.
    Nun noch ein Problem:
    Wie kann ich die Größe des Controls ändern, nachdem es erstellt wurde?

    MfG,
    -haiyyu



  • //du brauchst das hwnd des controls oder du hohlst es dir mit GetDlgItem
    z.B.
    HWND hWndControl = GetDlgItem(hwnd/*parent*/,/*menu-id des controls*/);
    SetWindowPos(hWndMDI, NULL, /*X-position*/, /*Y-position*/, /*deine breite*/,/*deine höhe*/, SWP_NOZORDER);
    
    //falls dir des so passt..
    //wenn dein control automatisch die größe ändern soll (mit dem parent) dann bei parent WM_SIZE einfach des einfügen
    


  • .. schrieb:

    //du brauchst das hwnd des controls oder du hohlst es dir mit GetDlgItem
    z.B.
    HWND hWndControl = GetDlgItem(hwnd/*parent*/,/*menu-id des controls*/);
    SetWindowPos(hWndMDI, NULL, /*X-position*/, /*Y-position*/, /*deine breite*/,/*deine höhe*/, SWP_NOZORDER);
    
    //falls dir des so passt..
    //wenn dein control automatisch die größe ändern soll (mit dem parent) dann bei parent WM_SIZE einfach des einfügen
    

    ich mein natürlich

    SetWindowPos(hWndControl,
    


  • Hey,
    vielen Dank, habe noch eine letzte Frage:
    Ich möchte das Edit-Control so groß wie meine Form machen, wie kann ich nun die Form-Größe auslesen?

    MfG,
    -haiyyu_



  • //bei parent
    WM_SIZE:
    {
    RECT rctMain;
    RECT rctEdit;
    GetClientRect(hWnd, &rctMain); //hohle größe von main window
    HWND hwndEDIT = GetDlgItem(hWnd,/*menu-id von edit*/);
    GetWindowRect(hwndEDIT , &rctEdit);
    
    SetWindowPos(hwndEDIT , NULL,0, 0, rctMain.right,rctMain.bottom, SWP_NOZORDER);
    
    } return 0;
    //joa müsste so gehen ^^ außer ic hhab mich auf die schnelle vertippt
    


  • Hey,
    vielen Dank! 🙂
    Klappt perfekt.



  • kein problem 👍


Anmelden zum Antworten