MFC中用CRichEditCtrl复制快捷方式操作
Posted
技术标签:
【中文标题】MFC中用CRichEditCtrl复制快捷方式操作【英文标题】:Copy shortcut operation with CRichEditCtrl in MFC 【发布时间】:2015-02-17 09:03:24 【问题描述】:我对 MFC 很陌生。我有以下代码用于Copy
和SelectAll
CRichEditCtrl
对象的快捷方式。
ON_COMMAND(ID_EDIT_COPY, OnCopy)
ON_COMMAND(ID_EDIT_SELECT_ALL, OnSelectAll)
但我无法在我在这里编写的函数中捕获 Copy (Ctrl+C)
和 SelectAll (Ctrl+A)
的断点,因为它没有被执行。
这里的 CRichEditCtrl 对象是只读的(文本是只读的,不允许修改)。
我还想为 CRichEditCtrl 对象提供使用鼠标进行文本选择的功能。
关于如何实现这一点的任何想法?
【问题讨论】:
【参考方案1】:此操作不是使用我们知道的 WM_COMMAND 值执行的。击键也会在内部进行检查并在内部进行处理。
对于与剪贴板交互的某些操作,内部有名为 WM_COPY 和 WM_PASTE 的特殊窗口消息。
Afaik 选择(全选)完全在内部完成。您可以尝试子类化 RTF 控件并拦截 EM_SETSEL 消息。
如果你想拦截击键,你可以使用 PreTranslateMessage 或者你可以再次子类化 RTF 控件。
【讨论】:
知道如何用鼠标为这个只读的 CRichEditCtrl 对象进行文本选择吗? 您是否将其设置为只读,或者您是否使用了 EnaleWindow?在我的 RTF 控件中,我可以使用鼠标选择文本。 (EM_SETREADONLY) 它是只读的。有什么方法可以在 PreTranslateMessage() 中使用 EM_GETSEL 从 CRichEditCtrl 对象中获取选定的文本。 AFAIK 是的。你有什么问题? 我想借助我们在其他编辑器中看到的鼠标来选择文本。以上是关于MFC中用CRichEditCtrl复制快捷方式操作的主要内容,如果未能解决你的问题,请参考以下文章