Использование сведений о разрыве в word и строке
Элемент управления расширенными изменениями вызывает функцию, называемую процедурой разбиения слов, чтобы найти разрывы между словами и определить, где она может разбить линии. Элемент управления использует эти сведения при выполнении операций оболочки слов и при обработке сочетаний клавиш CTRL+СТРЕЛКА ВЛЕВО и CTRL+СТРЕЛКА ВПРАВО. Приложение может отправлять сообщения в элемент управления расширенными изменениями, чтобы заменить процедуру разбиения слов по умолчанию, получить сведения о разрыве слов и определить, на какую строку попадает заданный символ.
Это важно знать
Технологии
Необходимые компоненты
- C/C++
- Программирование пользовательского интерфейса Windows
Instructions
Использование сведений о разрыве в word и строке
Процедуры разбиения слов для элементов управления расширенными изменениями похожи на те, которые предназначены для элементов управления редактированием, но они имеют дополнительные возможности: процедуры разбиения слов для обоих видов элементов управления могут определить, является ли символ разделителем и может найти ближайший разрыв слов до или после указанной позиции. Разделитель — это символ, обозначающий конец слова, например пробел. Как правило, в элементе управления редактированием разрыв слов происходит только после разделителей. Однако различные правила применяются к большинству азиатских языков.
Процедуры разбиения word для элементов управления расширенными изменениями также группируют символы в классы символов, каждый из которых определяется значением в диапазоне 0x00 через 0x0F. Разрывы происходят либо после разделителей, либо между символами разных классов. Таким образом, процедура разбиения слов с различными классами для буквенно-цифровых символов и знаков препинания находит два разрывов слов в строке "Win.doc" (до и после периода).
Класс символа можно объединить с нулевыми или более флагами разбиения слов для формирования 8-разрядного значения. При выполнении операций с оболочкой word элемент управления с расширенными изменениями использует флаги разбиения слов, чтобы определить, где он может прерывать строки. Rich Edit использует следующие флаги разбиения слов.
Флаг | Description |
---|---|
WBF_BREAKAFTER | Строки могут быть разбиты после символа. |
WBF_BREAKLINE | Символ — это разделитель. Разделители помечают концы слов. Строки могут быть разбиты после разделителей. |
WBF_ISWHITE | Символ является символом пробела. Конечные пробелы не включаются в длину строки при оболочке. |
Значение WBF_BREAKAFTER используется для разрешения упаковки после символа, который не помечает конец слова, например дефис.
Вы можете заменить процедуру разбиения по умолчанию для элемента управления расширенными изменениями с помощью EM_SETWORDBREAKPROC сообщения. Дополнительные сведения о процедурах разбиения слов см. в описании функции EditWordBreakProc .
Примечание.
Эта замена не рекомендуется для Microsoft Rich Edit 2.0 и более поздних версий из-за сложности разбиения многоязычных слов.
Для Microsoft Rich Edit 1.0 можно использовать сообщение EM_SETWORDBREAKPROCEX для замены расширенной процедуры разбиения слов по умолчанию функцией EditWordBreakProcEx. Эта функция предоставляет дополнительные сведения о тексте, например набор символов. Вы можете использовать сообщение EM_GETWORDBREAKPROCEX для получения адреса текущей расширенной процедуры разбиения слов. Обратите внимание, что Microsoft Rich Edit 2.0 и более поздних версий не поддерживает EditWordBreakProcEx, EM_GETWORDBREAKPROCEX и EM_SETWORDBREAKPROCEX.
Вы можете использовать сообщение EM_FINDWORDBREAK для поиска разрывов слов или определения классов символов и флагов разбиения слов. В свою очередь, элемент управления вызывает процедуру разбиения слов, чтобы получить запрошенную информацию.
Чтобы определить, на какую строку попадает заданный символ, можно использовать сообщение EM_EXLINEFROMCHAR.
См. также