I suspect that Anonymous Monk’s reply is the best advice. However, if you need to persevere with Win32::GUI, the following strategy might provide an acceptable workaround:
- Create an additional read-only text box to display the text selected in the RichEdit control (by calling $re->GetSelText()).
- Update this on every MouseUp event.
- Also provide a “Cancel” button to allow the user to set the RichEdit control text selection to the empty string.
- When the “Cancel” button is pressed, blank-out the read-only text box and reset the RichEdit control.
- Implement the “Copy Selected Text” button as originally intended.
The advantage is that the user can see the current selection, so knows when it’s necessary to press the “Cancel” button. The main disadvantage is the provision of an extra widget.
I haven’t attempted to implement this idea. Just a thought, and I hope it helps,