Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];

Вниз

Взять Items[i] как из RichEdit RTF-строку   Найти похожие ветки 

 
=BuckLr=   (2007-06-22 13:08) [0]

Задача - взять целую строку из RichEdit в формате Rich Text, но НЕ используя выделение при помощи SelStart-SelLength + RE_Text[reRTF, True] и иже с ними...
Что подскажете? Может, есть какие-то АПИ для этого?


 
Vladimir Kladov   (2007-06-22 17:22) [1]

Нет, выделение это и есть стандартный способ. Если выделение устанавливать временно, а затем восстанавливать, то никто ничего и не заметит. На случай длинных операций есть beginupdate/endupdate.


 
=BuckLr=   (2007-06-22 20:36) [2]


> никто ничего и не заметит

да, я так и делаю. Правда, скроллинг всё равно уходит не туда, где был, но это мелочь... В общем, думал, что есть какой-то магический способ :)


 
Vladimir Kladov   (2007-06-22 20:41) [3]

Вроде не должен уходить, с чего бы это. Если не использовать EM_SCROLL, EM_SCROLLCARET, то не должен только при изменении выделения.


 
=BuckLr=   (2007-06-22 22:50) [4]


> Вроде не должен уходить, с чего бы это

с того, что мне приходится менять положение каретки - при таком подходе это обязательно. Ну да ладно, проблему решим.


 
Vladimir Kladov   (2007-06-23 09:15) [5]

Да, действительно ускакивает куда попало. Чтобы восстановить хотя бы приблизительно в ту же позицию, надо EM_CHARFROMPOS, 0, 0 - запомнить позицию символа, ближайшего к верхнему левому углу, а по окончании операции целый цикл организовывать, чтобы вернуть изображение туда же.


 
=BuckLr=   (2007-06-23 10:23) [6]


> Да, действительно ускакивает куда попало

:) а я думал, что от моих манипуляций (у меня там курсор по всму экрану ездит) :)


>  по окончании операции целый цикл организовывать, чтобы
> вернуть изображение туда же

А по-моему, проще будет поставить туда курсор и что-то типа EM_SCROLLCARET. Или SetScrollPos, только я не знаю, как оно работает, не сталкивался.


 
Vladimir Kladov   (2007-06-23 11:23) [7]

Я попробовал сделать тройку методов. Сейчас положу, посмотрите. В richedit после скролла вертикального (за тумбу на скролле мышкой) верхняя строка может отображаться частично. Восстановление приводит к небольшому спрыгу, чтобы показывалась целая (следующая) строка. Кроме того, в RichEdit не удается восстановить горизонтальную позицию скролла, в нем EM_LINESCROLL не работает для горизонтальной прокрутки. И ничего вообще нет для горизонтальной прокуртки, кроме EM_SCROLLCARET, а это все равно прыг. Попытка обратиться к непосредственно прокруткам контрола для RichEdit тоже ничего не дает: прокрутки позицию меняют, но это не влияет на сам RichEdit.


 
Vladimir Kladov   (2007-06-23 11:29) [8]

Вот, нашел: EM_GETSCROLLPOS and EM_SETSCROLLPOS. Начиная с RichEdit3.0 вроде бы. Сейчас попробую с ними.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.045 c
4-1182418874
cosinus
2007-06-21 13:41
2008.01.20
Чужой TreeView


11-1182453093
=BuckLr=
2007-06-21 23:11
2008.01.20
RE_StartIndent


15-1197964727
Alexey
2007-12-18 10:58
2008.01.20
Программы не запускаются под Win2003. Что делать?


2-1197975866
Indigo
2007-12-18 14:04
2008.01.20
Замена в файле 3 больших букв на аналогичные маленькие


15-1197834037
Riply
2007-12-16 22:40
2008.01.20
Инициализация переменных в С





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский