Создание органа управления Rich Edit
Редактор текста Rich Edit
Основные возможности текстового редактора Rich Edit:
· символы текста могут иметь любое шрифтовое оформление;
· доступны как растровые шрифты, так и шрифты True Type;
· имеется возможность задавать оформление параграфов текста (выравнивание влево, вправо, центровка и задание отступов);
· имеется возможность организовать печать текста, загруженного для редактирования;
· орган управления Rich Edit может загружать и сохранять как обычный текст без шрифтового или какого-либо другого оформления, так и текст в формате RTF;
· орган управления Rich Edit способен работать с объектами OLE (Object Linking and Embedding).
· имеется почти полная обратная совместимость со "старым" органом управления EDIT.
Орган управления Rich Edit можно использовать для создания достаточно мощного текстового редактора, напоминающего приложение WordPad.
Орган управления Rich Edit создается на базе предопределенного класса окна "RICHEDIT " при помощи функции CreateWindowEx или CreateWindow.
Однако перед тем как создать окно, необходимо загрузить в память DLL-библиотеку RICHED32.DLL , в которой находятся все необходимые функции. Это можно сделать при помощи функции LoadLibrary :
HINSTANCE hRTFLib;hRTFLib = LoadLibrary("RICHED32.DLL");
После загрузки библиотеки можно создавать окно органа управления Rich Edit:
hwndEdit = CreateWindowEx(0, _T("RICHEDIT"),_T( ""),WS_VISIBLE | WS_CHILD | WS_BORDER | WS_HSCROLL | WS_VSCROLL | ES_NOHIDESEL | ES_AUTOVSCROLL | ES_MULTILINE | ES_SAVESEL, 0, 0, rc.right - rc.left, rc.bottom - rc.top, hWnd, (HMENU)IDC_RTFEDIT, hInst, NULL);Для окна органа управления Rich Edit можно использовать следующие дополнительные стили окна:
Стиль | Описание |
ES_DISABLENOSCROLL | Когда полосы просмотра ненужны, они не удаляются, а изображаются в заблокированном состоянии |
ES_NOIME | Запрещение работы редактора методов ввода (нужно только для работы с азиатскими языками) |
ES_SAVESEL | Когда орган управления Rich Edit теряет фокус ввода, сохраняется выделение символов, выполненное пользователем. Если вы не укажите этот стиль, после повторного получения фокуса орган управления выделит весь имеющийся в его окне текст (что не всегда удобно) |
ES_SELFIME | Разрешение работы редактора методов ввода (нужно только для работы с азиатскими языками) |
ES_SUNKEN | Окно органа управления Rich Edit выглядит как углубленное в поверхность родительского окна |
ES_VERTICAL | Рисование в вертикальном направлении (нужно только для работы с азиатскими языками) |
Кроме перечисленных выше стилей можно использовать следующие стили, определенные для обычного органа управления Edit:
Стиль | Описание |
ES_AUTOHSCROLL | Выполняется автоматическая свертка текста по горизонтали. Когда при наборе текста достигается правая граница окна ввода, весь текст сдвигается влево на 10 символов |
ES_AUTOVSCROLL | Выполняется автоматическая свертка текста по вертикали. Когда при наборе текста достигается нижняя граница окна ввода, весь текст сдвигается вверх на одну строку |
ES_CENTER | Центровка строк по горизонтали в многострочном текстовом редакторе |
ES_LEFT | Выравнивание текста по левой границе окна редактирования |
ES_MULTILINE | Создается многострочный редактор текста |
ES_NOHIDESEL | Если редактор текста теряет фокус ввода, при использовании данного стиля выделенный ранее фрагмент текста отображается в инверсном цвете. Если этот стиль не указан, при потере фокуса ввода выделение фрагмента пропадает и появляется вновь только тогда, когда редактор текста вновь получает фокус ввода |
ES_READONLY | Создаваемый орган управления предназначен только для просмотра текста, но не для редактирования |
ES_WANTRETURN | Стиль используется в комбинации со стилем ES_MULTILINE. Используется только в диалоговых панелях. При использовании этого стиля клавиша <Enter> действует аналогично кнопке диалоговой панели, выбранной по умолчанию |
ES_RIGHT | Выравнивание текста по правой границе окна редактирования |
Некоторые стили, определенные для органа управления Edit нельзя использовать при создании органа управления Rich Edit. Вот список таких стилей:
Стиль, который нельзя использовать для органа управления Rich Edit | Описание |
ES_LOWERCASE | Выполняется автоматическое преобразование введенных символов в строчные |
ES_OEMCONVERT | Выполняется автоматическое преобразование кодировки введенных символов из ANSI в OEM и обратно. Обычно используется для ввода имен файлов |
ES_PASSWORD | Этот стиль используется для ввода паролей или аналогичной информации. Вместо введенных символов отображается символ "*" или другой, указанный при помощи сообщения EM_SETPASSWORDCHAR |
ES_UPPERCASE | Выполняется автоматическое преобразование введенных символов в заглавные |
Дополнительные стили окна могут комбинироваться между собой и со стандартными стилями окна при помощи логической операции ИЛИ.