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 .
Temas relacionados