Enter in Editfeld bzw. DefaultPushButton ohne Dialog??



  • Hallo,

    Ich möchte in einem einzeiligen Editfeld das Child des Hauptfensters ist abfragen ob Enter gedrückt wurde.
    Meine Idee war BS_NOTIFY zu setzen und dann WM_COMMAND abzufragen.
    Dummerweise gehts blos nicht.

    die Nachrichten kommen auch da an wo sie sollen, aber ich hab keine Nachricht gefunden die mein Problem löst. Frag ich beispielsweise EN_CHANGE ab verschwindet das Feld natürlich sofort wieder.
    EN_KILLFOCUS geht auch nicht weil ja kein anderes feld Activiert wird.
    Ein defaultPushButton geht auch nicht weil ich keinen Dialog verwende. 😞

    case WM_COMMAND:
                if (HIWORD(wParam)==EN_CHANGE)
                   {               
                         GetWindowText(hEdit,tempName,40);
                         testmod[0].SetName(tempName);
                         ShowWindow(hEdit,SW_HIDE);
                         SetFocus(hwnd);
                   }            
                break;
    

    hEdit ist der Handle des Editfeldes
    hwnd der Handle des Hauptfensters
    Das Editfeld erhält den Focus und wird angezeigt nachdem in ein Rect das im object Testmod vorhanden ist ein Doppelclick "pasiert". (hört sich irgendwie komisch an, aber ich glaub ihr wisst was gemeint ist)



  • Ich habe gerade mal mit Winspector nachgeschaut und es scheint so zu sein, dass du im Parent gar keine Benachrichtigung bekommst, wenn Enter gedrückt wird. Du wirst also wohl Subclassing verwenden müssen 🙂



  • Ich habs jetzt anders gemacht und mir mein eigenes Editfeld gebastelt.
    Mit dem Caret und so...
    Mit den Funktionen aus der String-Klasse is das eigentlich ganz einfach.

    Finds aber schon eon bischen traurig das in der WinAPI einer so einfache Aufgabe nur über Umwege zu begegnen ist. 😞
    Mir kommts jedenfals so vor als ob die Jungs von MS in diesem Punkt nicht zuende gedacht haben. 👎



  • Es kann auch einfach sein das du die einfache Lösung noch nicht gefunden hast.



  • Schon möglich...

    das ist genau der Grund warum mir der Einstieg auch so schwer gefallen ist.
    Weil man nicht alle Informationen an einem Punkt findet.

    Bei "Hochsprachen" hatt man ja für gewöhnlich ein Manual in dem Alles drinnsteht.

    Na..Ja...
    Nach dem vierten Monat WinAPI Programmierung kann ich mich ja eh noch zu den API Anfängern zählen.


Anmelden zum Antworten