MFC中CRichEditCtrl复制快捷操作

Copy shortcut operation with CRichEditCtrl in MFC

我对 MFC 很陌生。我有以下 Copy 代码和 CRichEditCtrl 对象的 SelectAll 快捷方式。

ON_COMMAND(ID_EDIT_COPY, OnCopy)
ON_COMMAND(ID_EDIT_SELECT_ALL, OnSelectAll)

但是我无法在我在这里编写的函数中捕捉到 Copy (Ctrl+C) 和 SelectAll (Ctrl+A) 的断点,因为它没有被执行。

这里的CRichEditCtrl对象是只读的(文本是只读的,不允许修改)。

我还想为 CRichEditCtrl 对象提供使用鼠标选择文本的功能。

关于如何实现这个的任何想法?

此操作未使用我们已知的 WM_COMMAND 值执行。击键也会在内部检查并在内部处理。

内部有一些名为 WM_COPY 和 WM_PASTE 的特殊 window 消息,用于一些与剪贴板交互的操作。

Afaik 选择(Select 全部)完全在内部完成。您可以尝试子类化 RTF 控件并拦截 EM_SETSEL 消息。

如果你想拦截击键,你可以使用 PreTranslateMessage 或者你可以再次子类化 RTF 控件。