Как получить положение курсора в Edit Control MFC? - PullRequest
0 голосов
/ 10 мая 2018

Можно ли узнать текущую позицию курсора в элементе управления редактированием?

У меня есть сценарий, в котором мне нужно вставить текст в текущей позиции курсора.

Примечание: Я реализую логику в C ++.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Вам не нужно строго запрашивать позицию курсора, если вы хотите вставить текст в текущем месте. CEdit :: ReplaceSel может использоваться для этого, как описано в документации:

Если текущее выделение отсутствует, замещающий текст вставляется в текущую позицию курсора.

В зависимости от ваших конкретных требований вам придется иметь дело со случаем, когда есть непустой выбор. Наиболее естественной реализацией было бы заменить текущий выбор. Это то, чего ожидают пользователи, и вам не нужно будет реализовывать дополнительную логику кода.

Если вы предпочитаете вставлять текст в текущую позицию курсора, если в данный момент есть выделение, вы можете удалить выделение без изменения текущей позиции курсора, вызвав CEdit :: SetSel :

m_edit.SetSel(-1, 0);
0 голосов
/ 10 мая 2018

Чтение документации делает это довольно легко. Вы будете использовать GetCaretPos() и CharFromPos() вместе.

return m_edit.CharFromPos(m_edit.GetCaretPos());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...