Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Help!!! Досовский текст в RichEdit.

2.8K
07 декабря 2002 года
Raven
2 / / 07.12.2002
Кто-нить знает как корректно отобразить Досовский текст в компоненте RichEdit??? То-есть с сохранением всей псевдографики и с нормальным масштабированием. В принципе я знаю два способа, но не знаю как их доработать. Программка пишется с использованием VCL.

Первый способ через Windows API:

TCharFormat RichTextFormat;
RichTextFormat.cbSize = sizeof(TCharFormat);
RichTextFormat.dwMask = -402653181;
RichTextFormat.yOffset = 0;
RichTextFormat.crTextColor = ;// цвет
RichTextFormat.yHeight = ; // размер
RichTextFormat.bCharSet = 255;
RichTextFormat.dwEffects = 0;
strcpy(RichTextFormat.szFaceName, "");
//то-есть переменная содержащая имя фонта ОБЯЗАТЕЛЬНО должна содержать
//NULL. (в windows только один oem font: Terminal, но он не True Type
//поэтому он коряво масштабируется )
if (RichTextFormat.szFaceName[0] == '\0')
{
RichTextFormat.bPitchAndFamily = FF_MODERN;
}
else
RichTextFormat.bPitchAndFamily = DEFAULT_PITCH;

SendMessage(RichEdit->Handle, EM_SETCHARFORMAT,
SCF_ALL && SCF_SELECTION, LPARAM(&RichTextFormat));
SendMessage(RichEdit->Handle, EM_SETCHARFORMAT,
0, LPARAM(&RichTextFormat));

Что мне теперь сделать чтобы изменения вступили в силу???
RedrawWindow (...), UpdateWindow (...), RichEdit->Repaint(), не помогают,
но если вставить этот кусок кода в событие OnCreate, то всё срабатывает превосходно, только не пересоздавать же форму каждый раз :((((((((

Ещё можно сделать так:

RichEdit->DefAttributes->Name = "";
RichEdit->DefAttributes->Charset = 255;
RichEdit->DefAttributes->Pitch = fpFixed;
но последняя строка не срабатывает и символы в RichEdit получаются разной длины, пробелы оказываются ужасно короткими и весь текст офигенно съезжает влево.

Помогите кто-нибудь плиз!!!!!!!!!!!!
3.0K
09 декабря 2002 года
RWolf
2 / / 09.12.2002
Я с этим тоже намучался. В конце концов применил такое решение: исходный текст преобразовываю к виду RTF, размечая его при этом, как нужно, и уже RTF загружаю в RichEdit. Программируется несложно, работает быстро.
2.8K
13 декабря 2002 года
almor
7 / / 13.12.2002
Может поможет RecreateWnd вместо Repaint :-?
ну и поработать с CreateParams для твоего Edita
(не проверял)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог