Орган управления Rich Edit создается на базе предопределенного класса окна "RICHEDIT " при помощи функции CreateWindowEx или CreateWindow, как и многие другие описанные нами в этом томе органы управления.
Однако перед тем как создать окно, необходимо загрузить в память DLL-библиотеку RICHED32.DLL , в которой находятся все необходимые функции. Это можно сделать при помощи функции LoadLibrary :
HINSTANCE hRTFLib; hRTFLib = LoadLibrary("RICHED32.DLL");
О том, что такое DLL-библиотеки, вы уже знаете из 13 тома "Библиотеки системного программиста". Там же была описана и функция LoadLibrary.
После загрузки библиотеки можно создавать окно органа управления Rich Edit:
hwndEdit = CreateWindowEx(0L, "RICHEDIT", "", 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: