Вам не нужно строго запрашивать позицию курсора, если вы хотите вставить текст в текущем месте. CEdit :: ReplaceSel может использоваться для этого, как описано в документации:
Если текущее выделение отсутствует, замещающий текст вставляется в текущую позицию курсора.
В зависимости от ваших конкретных требований вам придется иметь дело со случаем, когда есть непустой выбор. Наиболее естественной реализацией было бы заменить текущий выбор. Это то, чего ожидают пользователи, и вам не нужно будет реализовывать дополнительную логику кода.
Если вы предпочитаете вставлять текст в текущую позицию курсора, если в данный момент есть выделение, вы можете удалить выделение без изменения текущей позиции курсора, вызвав CEdit :: SetSel :
m_edit.SetSel(-1, 0);