Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.20;
Скачать: CL | DM;

Вниз

Взять 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 вся ветка

Текущий архив: 2008.01.20;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.041 c
2-1198155822
312kbps
2007-12-20 16:03
2008.01.20
Определить номер текуще строки в ListBox !?


15-1197754927
Johnmen
2007-12-16 00:42
2008.01.20
Отдам в хорошие руки. Москва.


15-1197812128
I
2007-12-16 16:35
2008.01.20
Покритикуйтк сборку, пожалуйста


1-1192792154
ancot
2007-10-19 15:09
2008.01.20
Как узнать имя события в Run Time


15-1197556569
Petr V. Abramov
2007-12-13 17:36
2008.01.20
Коннект к MSSQL-2000





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский