Rich Edit
Введение...О richedit контроле можно думать, как о функционально-расширенном средстве редактирования. Он обеспечивает множество полезных особенностей, которых нет в простых средствах редактирования, например, возможность использовать множество видов и размеров шрифта, глубокий уровень отмены/ восстановления, операцией поиска по тексту, встроенные OLE-объекты, поддержка редактирования методом перетаскивания (drag-and-drop), и т.д. Так как richedit контрол имеет так много особенностей, он сохранен в отдельной DLL-библиотеке. Это также означает что, чтобы его использовать, вам недостаточно просто вызывать InitCommonControls, как в других Common-контролах. Вы должны вызвать LoadLibrary, чтобы загрузить richedit DLL.
На данный момент существует четыре версии библиотек RichEdit:
| Версии dll -> имя класса | ||
| Имя | Версия | Имя класса |
| Riched32.dll | 1.0 | RICHEDIT |
| RichED20.dll | 2.0 | RICHEDIT20A |
| RichED20.dll | 3.0 | RICHEDIT20A |
| Msftedit.dll | 4.1 | RICHEDIT_CLASS |
RichEdit версия 2 и 3 использует то же самое имя DLL, как и имя класса. Официального метода различия между версиями 2.0 и 3.0 по всей видимости не существует.
По рекомендации MSDN следует использовать следующие имена классов:
RichEdit – для версии 1.0
RICHEDIT_CLASS(макрос) – для версии 2.0 и более новых.
| Версии встроенных библиотек RichEdit | |
| OS | Версия |
| Windows XP SP1 | 4.1 , 3.0 , эмулятор версии 1.0 |
| Windows XP | 3.0, эмулятор версии 1.0 |
| Windows ME | 1.0, 3.0 |
| NT 4 | 1.0, 2.0 |
| 98 | 1.0, 2.0 |
| 95 | 1.0 |
| ID | Описание |
| EM_CANPASTE | С помощью этого сообщения можно проверить возможность вставки данных из универсального буфера обмена Clipboard в орган управления Rich Edit |
| EM_DISPLAYBAND | Отображение фрагмента текста, предварительно отформатированного сообщением EM_FORMATRANGE |
| EM_EXGETSEL | Определение начальной и конечной позиции выделенного фрагмента текста |
| EM_EXLIMITTEXT | Установка предельного значения для объема текста, который можно записать в орган управления Rich Edit |
| EM_LINEFROMCHAR | Определение номера строки, в которой расположен символ с заданным номером (считая от начала текста) |
| EM_EXSETSEL | Выделение фрагмента текста |
| EM_FINDTEXT | Поиск фрагмента текста |
| EM_FINDTEXTEX | Расширенный поиск фрагмента текста |
| EM_FINDWORDBREAK | Поиск символа переноса слова на другую строку |
| EM_FORMATRANGE | Форматирование фрагмента или всего текста для отображения в заданном контексте устройства. Используется, например, для печати |
| EM_GETCHARFORMAT | Определение текущих атрибутов форматирования |
| EM_GETEVENTMASK | Получение маски событий, которая определяет набор извещений, посылаемых органом управления Rich Edit родительскому окну |
| EM_GETPARAFORMAT | Определение атрибутов форматирования параграфа |
| EM_GETSELTEXT | Переписывание в заданный буфер выделенного текста |
| EM_GETTEXTRANGE | Переписывание в заданный буфер заданного фрагмента текста |
| EM_HIDESELECTION | Разрешение или запрещение визуального отображения выделения текста |
| EM_PASTESPECIAL | Запись данных в заданном формате из универсального буфера обмена Clipboard в орган управления Rich Edit |
| EM_REQUESTRESIZE | После получения этого сообщения окно Rich Edit посылает родительскому окну извещение EN_REQUESTRESIZE. Это извещение означает, что размеры окна Rich Edit изменились |
| EM_SELECTIONTYPE | Определение типа выделения: текст, один или несколько OLE -объектов |
| EM_SETBKGNDCOLOR | Установка цвета фона для окна органа управления Rich Edit |
| EM_SETCHARFORMAT | Установка атрибутов форматирования текста |
| EM_SETEVENTMASK | Установка маски событий, которая определяет набор извещений, посылаемых органом управления Rich Edit родительскому окну |
| EM_SETOPTIONS | Установка режимов работы и стилей органа управления Rich Edit, таких как ES_AUTOVSCROLL, ES_READONLY, ES_SAVESEL и т. д. |
| EM_SETPARAFORMAT | Установка атрибутов форматирования параграфа текста |
| EM_SETTARGETDEVICE | Установка контекста устройства отображения и ширины строки для обеспечения работы в режиме WYSIWYG (What You See Is What You Get - что вы видите, то и получите (имеется в виду, при печати) |
| EM_STREAMIN | Запись в орган управления Rich Edit данных с замещением из потока данных (из файла). Можно указывать обычный текстовый формат или формат RTF |
| EM_STREAMOUT | Сохранение содержимого органа управления Rich Edit в потоке (в файле). Можно указывать обычный текстовый формат или формат RTF |