Cómo usar Word e información de saltos de línea

Un control de edición enriquecido llama a una función denominada procedimiento de salto de palabras para buscar saltos entre palabras y determinar dónde puede romper líneas. El control usa esta información al realizar operaciones de ajuste de palabras y al procesar las combinaciones de teclas CTRL+FLECHA IZQUIERDA y CTRL+FLECHA DERECHA. Una aplicación puede enviar mensajes a un control de edición enriquecido para reemplazar el procedimiento predeterminado de separación de palabras, recuperar información de separación de palabras y determinar en qué línea se encuentra un carácter determinado.

Lo que necesita saber

Tecnologías

Requisitos previos

  • C/C++
  • Programación de la interfaz de usuario de Windows

Instrucciones

Usar Word e información de salto de línea

Word procedimientos de interrupción para controles de edición enriquecidos son similares a los de los controles de edición, pero tienen funcionalidades adicionales: los procedimientos de salto de palabra para ambos tipos de controles pueden determinar si un carácter es un delimitador y puede encontrar el salto de palabra más cercano antes o después de la posición especificada. Un delimitador es un carácter que marca el final de una palabra, como un espacio. Normalmente, en un control de edición, un salto de palabra solo se produce después de delimitadores. Sin embargo, se aplican reglas diferentes a la mayoría de los idiomas asiáticos.

Word procedimientos de interrupción para controles de edición enriquecidos también agrupan caracteres en clases de caracteres, cada uno identificado por un valor del intervalo 0x00 a través de 0x0F. Los saltos se producen después de delimitadores o entre caracteres de diferentes clases. Por lo tanto, un procedimiento de salto de palabras con diferentes clases para caracteres alfanuméricos y de puntuación encontraría dos saltos de palabra en la cadena "Win.doc" (antes y después del punto).

La clase de un carácter se puede combinar con cero o más marcas de salto de palabra para formar un valor de 8 bits. Al realizar operaciones de ajuste de palabras, un control de edición enriquecido usa marcas de salto de palabra para determinar dónde puede interrumpir las líneas. Rich Edit usa las siguientes marcas de salto de palabra.

Marca Descripción
WBF_BREAKAFTER Las líneas pueden romperse después del carácter.
WBF_BREAKLINE El carácter es un delimitador. Los delimitadores marcan los extremos de las palabras. Las líneas se pueden romper después de los delimitadores.
WBF_ISWHITE El carácter es un carácter de espacio en blanco. Los caracteres de espacio en blanco finales no se incluyen en la longitud de una línea al ajustar.

 

El valor de WBF_BREAKAFTER se usa para permitir el ajuste después de un carácter que no marca el final de una palabra, como un guión.

Puede reemplazar el procedimiento de salto de palabra predeterminado para un control de edición enriquecido por su propio procedimiento mediante el EM_SETWORDBREAKPROC mensaje. Para obtener más información sobre los procedimientos de salto de palabra, vea la descripción de la función EditWordBreakProc .

Nota

Este reemplazo no se recomienda para Microsoft Rich Edit 2.0 y versiones posteriores, debido a la complejidad de la separación de palabras multilingües.

 

Para Microsoft Rich Edit 1.0, puede usar el mensaje de EM_SETWORDBREAKPROCEX para reemplazar el procedimiento de salto de palabra extendido predeterminado por una función EditWordBreakProcEx . Esta función proporciona información adicional sobre el texto, como el juego de caracteres. Puede usar el EM_GETWORDBREAKPROCEX mensaje para recuperar la dirección del procedimiento de salto de palabra extendido actual. Tenga en cuenta que Microsoft Rich Edit 2.0 y versiones posteriores no admiten EditWordBreakProcEx, EM_GETWORDBREAKPROCEX y EM_SETWORDBREAKPROCEX.

Puede usar el EM_FINDWORDBREAK mensaje para buscar saltos de palabras o para determinar la clase de un carácter y las marcas de salto de palabra. A su vez, el control llama a su procedimiento de salto de palabra para obtener la información solicitada.

Para determinar en qué línea se encuentra un carácter determinado, puede usar el mensaje EM_EXLINEFROMCHAR .

Usar controles de edición enriquecida

Demostración de controles comunes de Windows (CppWindowsCommonControls)