Strg+V und Umschalt+Einfg macht doch eigentlich das selbe… oder etwa nicht?

Ja! Das könnte man denken. Strg+V sowie Umschalt+Einfg sind Shortcuts um etwas aus der Zwischenablage einzufügen.
Man könnte weiterhin davon ausgehen, dass Windows in einem Edit-Control beide gleich behandelt. D.h. benutzt der Anwender Strg+V oder Umschalt+Einfg oder das  im Edit-Control, dann wird immer der selbe Vorgang ausgelöst.

Schön wäre es ja 🙁 …

Sowohl bei Strg+V, wie auch bei Umschalt+Einfg und über das Kontextmenü wird WM_PASTE an das Edit-Control gesendet. Schön!

Aber hat das Edit-Control den Stil ES_READONLY – ist also als nur lesend definiert -, dann wird bei Eingabe von Strg+V die Nachricht WM_PASTE nicht gesendet. Auch das Kontextmenü blendet den Menüpunkt Einfügen brav aus. Auch das ist gut so und wie erwartet.

Aber was passiert bei Umschalt+Einfg?
Ja. Das unerwartete passiert und in diesem Fall wird doch WM_PASTE gesendet…

Herausgekommen ist das als Bug in unserer Software bei einer speziellen Edit-Control Klasse, die auch bestimmte andere Datenformate aus der Zwischenablage verstehen soll. Ein Kunde stellte letzten Endes fest, dass er über Umschalt+Einfg weiterhin auch in ein Readonly-Control Daten einfügen kann.

Ich war ziemlich überrascht als ich dieses „unlogische“ Verhalten im Testfeld nachvollziehen konnte.
Wer hätte es gedacht? Ich nicht…

2 Gedanken zu „Strg+V und Umschalt+Einfg macht doch eigentlich das selbe… oder etwa nicht?“

  1. Unglaubliche Szenen. Erinnert mich ein bißchen an „damals,“ als wir mühselig versucht haben, den Leuten den Sinnzusammenhang zwischen RMB_DOWN, WM_CONTEXTMENUE und der Tastaturbedienung zu erklären. Daß in dem Umfeld immer noch Bugs im Framework existieren, ist verwunderlich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.