Paste in Edit Control: was wird eingefügt?



  • Hallo zusammen,

    ich möchte den Input in ein Edit Control abfangen. Beim Input über die Tastatur (einzelnes Zeichen) kann ich WM_CHAR abfangen, kein Problem.
    Leider empfängt das Edit-Control auch beim Paste-Vorgang zuerst ein WM_CHAR Event und erst danach den WM_PASTE Event.
    Wenn ich also WM_CHAR auswerte: woher weiß ich, dass es sich um einen Paste-Vorgang handelt und nicht um ein einzelnes Zeichen?

    Danke + Gruß
    testalucida



  • Hallo wn,

    if (message=WM_CHAR and wparam='V' and keydown(Strg))
    

    Oder?



  • hallo sapero,

    wparam ist zwar nicht 'V', sondern 0x16 - aber dein Tipp ist glaub ich goldrichtig: immer wenn beim WM_CHAR-Event wparam == 0x16, dann folgt ein WM_PASTE-Event und der Inhalt des Clipboards wird eingefügt.
    Danke!
    ciao
    winapinewbie


  • Mod

    BTW:
    Ctrl+A = 0x01 'A'-' '
    Ctrl+B = 0x02 'B'-' '
    ...
    Ctrl+V = 0x16 'V'-' '

    Wenn in wParam ein Wert < ' ' für eine WM_CHAR Nachricht ankommt, dann wurde die Strg Taste gedrückt plus Buchstabe!



  • Also ich hatte da auch mal das Problem, dass ich in einer Dialogbox die Änderungen im Editfeld in "Echtzeit" realisieren musste. Ich habe da im Dialog den Event WM_COMMAND->EN_CHANGE abgefangen, somit war es egal ob ich was aus der Zwischenablage hinein kopiert habe oder einfach im Feld einen Buchstaben gelöscht habe. Es wurde einfach jede Änderung abgefangen und von mir behandelt. Wäre für dich auch eine Möglichkeit das Problem anzugehen.


Anmelden zum Antworten