Как зарезервировать позицию каретки в контроле CEdit? - PullRequest
1 голос
/ 18 сентября 2008

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

Ответы [ 2 ]

1 голос
/ 18 сентября 2008

Используйте функцию GetSel () перед изменением, чтобы сохранить местоположение курсора, затем используйте SelSel (), чтобы установить его обратно. Вы можете использовать эти функции для получения / установки местоположения каретки, а не только для получения / установки выбора, сделанного пользователем.

0 голосов
/ 18 сентября 2008

Не могли бы вы объяснить причину, по которой вы хотели бы изменить поведение поля CEdit? Как пользователь, у меня возникла бы проблема с изменением каретки каждый раз, когда я вводил какой-либо символ. Или это то, что вы хотели бы предотвратить, если вы измените это значение программно?

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