Поделиться через


Как использовать информацию о разрывах в Microsoft Word и строках

Элемент управления расширенными изменениями вызывает функцию, называемую процедурой разбиения слов, чтобы найти разрывы между словами и определить, где она может разбить линии. Элемент управления использует эту информацию при выполнении операций переноса слов и при обработке сочетаний клавиш CTRL+СТРЕЛКА ВЛЕВО и CTRL+СТРЕЛКА ВПРАВО. Приложение может отправлять сообщения в элемент управления расширенными изменениями, чтобы заменить процедуру разбиения слов по умолчанию, получить сведения о разрыве слов и определить, на какую строку попадает заданный символ.

Что нужно знать

Технологии

Необходимые условия

  • C/C++
  • Программирование пользовательского интерфейса Windows

Инструкции

Использование информации о разрывах слов и строк

Процедуры разбиения слов для элементов управления расширенными изменениями похожи на те, которые предназначены для элементов управления редактированием, но они имеют дополнительные возможности: процедуры разбиения слов для обоих видов элементов управления могут определить, является ли символ разделителем и может найти ближайший разрыв слов до или после указанной позиции. Разделитель — это символ, обозначающий конец слова, например пробел. Как правило, в элементе управления редактированием разрыв слов происходит только после разделителей. Однако различные правила применяются к большинству азиатских языков.

Процедуры разбиения слов для элементов управления расширенными текстами также группируют символы в классы символов, каждый из которых определяется значением в диапазоне от 0x00 до 0x0F. Разрывы происходят либо после разделителей, либо между символами разных классов. Таким образом, процедура разбиения слов с различными классами для буквенно-цифровых символов и знаков препинания находит два разрывов слов в строке "Win.doc" (до и после периода).

Класс символа можно объединить с нулевыми или более флагами разбиения слов для формирования 8-разрядного значения. При выполнении операций переноса по словам элемент расширенного редактирования использует флаги разрыва строк, чтобы определить, где можно прерывать строки. Rich Edit использует следующие флаги разбиения слов.

Флаг Описание
WBF_BREAKAFTER Строки могут быть разбиты после символа.
WBF_BREAKLINE Символ — это разделитель. Разделители помечают концы слов. Строки могут быть разбиты после разделителей.
WBF_ISWHITE Символ является символом пробела. Конечные пробелы не включаются в длину строки при переносе строк.

 

Значение WBF_BREAKAFTER разрешает перенос строки после символа, который не обозначает конец слова, например, дефис.

Вы можете заменить процедуру word-break по умолчанию для элемента управления расширенными изменениями с помощью 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)