首页 > 解决方案 > 如何在编辑控件 MFC 中获取光标位置?

问题描述

有没有办法知道编辑控件中的当前光标位置?

我有一个场景,我需要在当前光标位置插入文本。

注意:我正在用 C++ 实现逻辑。

标签: visual-c++mfc

解决方案


如果要在当前位置插入文本,则不需要严格查询光标位置。CEdit::ReplaceSel可用于执行此操作,如文档中所述:

如果没有当前选择,则在当前光标位置插入替换文本。

根据您的具体要求,当有非空选择时,您将不得不处理这种情况。最自然的实现是替换当前的选择。这是用户所期望的,您不需要实现任何额外的代码逻辑。

如果您希望在当前光标位置插入文本以防当前有选择,您可以通过调用CEdit::SetSel删除选择而不改变当前光标位置:

m_edit.SetSel(-1, 0);

推荐阅读