Trabajar con el objeto Text Ink
Para ayudar a admitir la entrada de lápiz en las aplicaciones, hay dos objetos, que se pueden incrustar y son compatibles con cualquier contenedor OLE, el objeto de entrada de lápiz de texto (tInk) y el objeto de lápiz de croquis (sInk).
El objeto de entrada de lápiz de texto es un objeto OLE que representa la entrada de lápiz que se espera que forme palabras. Un objeto de entrada de lápiz de texto permite convertir la entrada manuscrita a texto eligiendo entre una lista de alternativas. El color y el tamaño del objeto de entrada de lápiz de texto se pueden establecer mediante programación y se pueden basar en los atributos del texto alrededor del objeto. El objeto de entrada de lápiz de texto está pensado para contener una sola palabra.
El objeto de entrada de lápiz de texto admite el conjunto estándar de interfaces OLE necesarias para la inserción y compatibilidad con el Portapapeles. La interfaz IPersistStream lee y escribe en una secuencia en formato serializado de entrada de lápiz (ISF). El objeto de entrada de lápiz de texto proporciona la interfaz IInkLineInfo para acceder a sus propiedades de presentación y a la lista de resultados de reconocimiento.
El objeto de entrada de lápiz de texto se puede usar para la interoperabilidad entre aplicaciones, ya sea colocándolo en la ranura del objeto OLE en el Portapapeles, incrustandolo en RTF o conservandolo en una secuencia ISF.
Se puede generar un objeto de entrada de lápiz de texto de las siguientes maneras.
- El control InkEdit usa el objeto de entrada de lápiz de texto. La funcionalidad del control InkEdit es un superconjunto de la funcionalidad de control RichEdit estándar. La entrada de lápiz se inserta en la secuencia RTF del control InkEdit como un objeto de entrada de lápiz de texto.
- Cuando una aplicación copia un inkStrokes o un objeto InkEdit en el Portapapeles y se establece el formato de enumeración InkClipboardFormats , la ranura del Portapapeles del objeto OLE contiene un objeto OLE de entrada de lápiz de texto.
- El Panel de entrada del PC tableta puede generar objetos de entrada de texto.
Por ejemplo, la aplicación puede reconocer la escritura a mano y agregar el resultado de reconocimiento a los trazos. A continuación, si copia y pega los trazos en Microsoft Word como un objeto de entrada de lápiz de texto, las alternativas para esa palabra están disponibles en Word 2003 y versiones posteriores.
Para contener correctamente objetos de entrada de lápiz de texto, una aplicación debe implementar la compatibilidad con contenedores OLE para objetos incrustados. A continuación, para que el contenedor admita totalmente la entrada de lápiz de texto, debe instituir:
- Modificaciones en la aplicación para Buscar y reemplazar. En lugar de omitir objetos incrustados en la búsqueda, estos objetos deben interrogarse para el tipo . Si son un objeto de entrada de lápiz de texto, se deben crear instancias y consultarse para su texto correspondiente.
- Modificaciones en el comportamiento de selección. La selección de objetos de entrada de lápiz de texto nunca debe aparecer con controladores de tamaño. Deben seleccionarse de la misma manera que el texto seleccionado en el documento. El código de selección de los objetos debe detectar si el tipo es la entrada manuscrita de texto y mostrar la selección correctamente.
- Uso de propiedades ambientales. Las propiedades ambientales, como el tamaño de fuente, el color y el formato de negrita, deben transmitirse al objeto de entrada de lápiz de texto. La aplicación de estas propiedades cambia el ancho de la entrada de lápiz manuscrita, por lo que se requiere una actualización de tamaño llamando al método IInkLineInfo::GetInkExtent o IOleObject::GetExtent .
En esta sección
- Conversión de un objeto de entrada de lápiz de texto a entrada de lápiz
- TEXT Ink API
- objetos sInk y tInk