Editbox! Fehler?



  • Ich habe eine Editbox erstellt mit CreateWindowEx().
    Aber man kann in sie nicht hinein schreiben.
    Ist das ein Fehler oder muss ich das selbst schreiben? ­čśĽ
    Wenn ja, wie?



  • Vllt schreibgesch├╝tzt ?! *grinz*



  • Es geht nicht um eine Datei, sondern um eine Editbox in einem Standardfenster



  • ROFL, ja und ? ... das kann auch schreibgesch├╝tzt sein!



  • und wie kann man das abstellen?



  • bei google gibts sicher was musst halt suchen



  • Aber meine eigentliche Frage ist ja: Ist die Funktionalit├Ąt um in ein Editfeld
    zu schreiben schon da oder muss man das selber ├╝bernehmen?
    Wenn ich in dieses Editfeld klicke kann ich nichts hinein schreiben.



  • Master Joe schrieb:

    Aber meine eigentliche Frage ist ja: Ist die Funktionalit├Ąt um in ein Editfeld
    zu schreiben schon da oder muss man das selber ├╝bernehmen?
    Wenn ich in dieses Editfeld klicke kann ich nichts hinein schreiben.

    Das geht alles automatisch...

    Wie hast du die Edit-Box denn erstellt ( Ô×í Code)?



  • EditX  = 10;
    	        EditY  = 10;
                EditWd = 680;
                EditHt = 300;
    
                hEditText = CreateWindowEx(WS_EX_CLIENTEDGE,
        								   "EDIT",
        						           "\0",
                                           WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL,
                                           EditX,
                                           EditY,
                                           EditWd,
                                           EditHt,
                                           hWnd,
                                           NULL,
                                           hInstance,
                                           NULL);
    

    Die Vars f├╝r die Gr├Â├če kann man ja sehen. Was die Vars hInstance und hWnd angeht:
    Sie sind in einem anderen Teil des Codes definiert und g├╝ltig.



  • Gib dem Ding mal ne ID != 0. Die child window ID musst du anstelle des menu handle ├╝bergeben, also auch auf HMENU casten. Is doof, is aber so. K├Ânnte sein dass das was bringt.



  • EM_SETREADONLY auf FALSE setzen



  • Das d├╝rfte es eigentlich nicht sein, er hat schlie├člich nicht ES_READONLY spezifiziert.

    Sonst guck doch mal mit Spy++, was die Edit-Box f├╝r Stile hat, auch Ex-Stiles.


  • Mod

    Und kontrolliere im Spy ob das COntrol wirklich den Fokus bekommt!



  • Ja, es hat den Fokus.
    Meine Frage von oben w├Ąr mir wichtig:
    Ist die Funktionalit├Ąt zum reinschreiben mittels Tastatur schon da oder muss man
    das selbst machen?
    Und: Werden die Nachrichten an das Child- oder das Parentfenster gesendet?? ­čśĽ



  • Ja, es hat den Fokus.
    Und ich habe dem Fenster die nach HMENU gecastete ID 11111 zugewiesen,
    es passiert aber trotzdem das selbe.
    Meine Frage von oben w├Ąr mir wichtig:
    Ist die Funktionalit├Ąt zum reinschreiben mittels Tastatur schon da oder muss man
    das selbst machen?
    Und: Werden die Nachrichten an das Child- oder das Parentfenster gesendet?? ­čśĽ

    Und wenn sie an das Childfenster gesendet werden, wie kann ich die auffangen?

    Tschuldigung wegen Doppelpost, aber die Editfunktion hat gesponnen



  • haste das gemacht? EM_SETREADONLY auf FALSE setzen

    und die funktion zum reinschreiben is da, du musst nix selber machen



  • Nein habe ich noch nicht.
    Ich habe mit Spy nachgeguckt und ES_READONLY ist nicht gesetzt.
    Ich kann es aber trotzdem ausprobieren, aber wie(Welche Funktion)?



  • Master Joe schrieb:

    Ich kann es aber trotzdem ausprobieren, aber wie(Welche Funktion)?

    SendMessage, die Parameter musst du in der MSDN angucken, unter SendMessage und EM_SETREADONLY.

    Kannst du irgendwo Text kopieren und im Edit-Feld Rechtsklick->Einf├╝gen?


  • Mod

    Master Joe schrieb:

    Ja, es hat den Fokus.
    Meine Frage von oben w├Ąr mir wichtig:
    Ist die Funktionalit├Ąt zum reinschreiben mittels Tastatur schon da oder muss man
    das selbst machen?
    Und: Werden die Nachrichten an das Child- oder das Parentfenster gesendet?? ­čśĽ

    Das ganze geht automatisch, wenn das Control den Fokus hat und Du auch eine Nachrichtenschleife hast, die die Nachrichten abholt!



  • Martin Richter schrieb:

    Das ganze geht automatisch, wenn [...] Du auch eine Nachrichtenschleife hast, die die Nachrichten abholt!

    Daran k├Ânnte es liegen! Hast du zuf├Ąllig sowas:

    GetMessage( &Msg, hWnd, 0, 0 );
    

    in deiner Nachrichtenschleife? Dann holt er ja nur die Nachrichten f├╝r das hWnd-Fenster. Statt hWnd mach NULL und er holt f├╝r alle Fenster. Hatte ich auch mal^^


Log in to reply