如何在编辑控件MFC中获取光标位置?



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

我有一个需要在当前光标位置插入文本的情况。

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

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

如果没有当前所选内容,则替换文本将插入到当前光标位置。

根据您的具体要求,当存在非空选择时,您必须处理这种情况。最自然的实现是替换当前选择。这是用户所期望的,您无需实现任何其他代码逻辑。

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

m_edit.SetSel(-1, 0);

阅读文档使这变得非常容易。您将结合使用GetCaretPos()CharFromPos()

return m_edit.CharFromPos(m_edit.GetCaretPos());

最新更新