Использование сведений о разрыве в 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.

Использование элементов управления расширенными изменениями

Демонстрация общих элементов управления Windows (CppWindowsCommonControls)