Я программирую приложение в MFC (не спрашивайте), и у меня есть поле CEdit с числом. Когда этот номер редактируется, я хотел бы действовать в соответствии с изменением, а затем заменить курсор там, где он был до того, как я отреагировал на изменение - если пользователь был непосредственно перед "." в «35,40», я бы хотел, чтобы он по-прежнему располагался перед точкой, если они изменят его на «345,40». В настоящее время я получаю сообщение ИЗМЕНИТЬ, но его можно переключить на что-то другое (ОБНОВЛЕНИЕ?). Как я могу этого добиться?





Перед изменением используйте функцию GetSel (), чтобы сохранить положение курсора, затем используйте SelSel (), чтобы вернуть его обратно. Вы можете использовать эти функции для получения / установки местоположения курсора, а не только для получения / установки выбора, сделанного пользователем.
Не могли бы вы объяснить причину, по которой вы хотите изменить поведение окна CEdit? Как пользователь, у меня была бы проблема с изменением курсора каждый раз, когда я ввожу какой-либо символ. Или это то, что вы хотели бы предотвратить, если программно измените это значение?
Как пользователь, я ожидаю, что курсор останется на том же месте. Если вы измените значение CEdit, например, с помощью .SetWindowTextA (), курсор переместится в переднюю часть поля. Это способ предотвратить это.