Проблемы с SetCaretPos
От: Iamgi  
Дата: 14.11.10 10:47
Оценка: 3 (1)
Здравствуйте.
Пишу ActiveX используя ATL. Имеется на форме RichEdit Control. Пишу подсветку синтаксиса, используя ITextDocument, ITextRange... Проблема следующая — необходимо вставить слово и установить после него курсор. Читаю позицию курсора, вставляю слово посредством ITextRange, передвигаю курсор в конец слова используя CRichEdit().SetCaretPos().
Все, курсор стоит, мигает даже в нужном месте, только начинаю ввод символов, курсор(каретка)перемешается в то место от куда начиналось вставляться предыдущее слово. То есть хотя курсор и "передвинулся" после слова, но новый текст начинается вводиться перед этим словом... подскажите пожалуйста что нужно сделать что бы все было как надо..
atl setcaretpos richedit control
Re: Проблемы с SetCaretPos
От: okman Беларусь https://searchinform.ru/
Дата: 14.11.10 11:33
Оценка:
Здравствуйте, Iamgi, Вы писали:

I>Здравствуйте.

I> Пишу ActiveX используя ATL. Имеется на форме RichEdit Control. Пишу подсветку синтаксиса, используя ITextDocument, ITextRange... Проблема следующая — необходимо вставить слово и установить после него курсор. Читаю позицию курсора, вставляю слово посредством ITextRange, передвигаю курсор в конец слова используя CRichEdit().SetCaretPos().
I> Все, курсор стоит, мигает даже в нужном месте, только начинаю ввод символов, курсор(каретка)перемешается в то место от куда начиналось вставляться предыдущее слово. То есть хотя курсор и "передвинулся" после слова, но новый текст начинается вводиться перед этим словом... подскажите пожалуйста что нужно сделать что бы все было как надо..

А Вы не используйте SetCaretPos, а попробуйте двигать каретку с помощью, например, EM_EXSETSEL.
Re[2]: Проблемы с SetCaretPos
От: Iamgi  
Дата: 14.11.10 11:58
Оценка:
Здравствуйте, okman, Вы писали:

O>А Вы не используйте SetCaretPos, а попробуйте двигать каретку с помощью, например, EM_EXSETSEL.


Ну что тут можно сказать. Большое спасибо! Работает!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.