Colección ink
La colección ink comienza con el digitalizador. Un usuario coloca un lápiz en el digitalizador y comienza a escribir. Puede usar las características de la colección de lápiz de la API para administrar la colección de datos de entrada de lápiz que "fluyen" desde el lápiz. Tiene acceso a información sobre el hardware disponible en Tablet PC a través de la colección Tablets y el objeto Tablet . A continuación, use el objeto InkCollector para obtener los datos procedentes del digitalizador.
Tabletas y el objeto Tablet
Una tableta representa un dispositivo digitalizador de tablet PC. Un pc tablet puede tener más de un digitalizador. Con el objeto Tablet , puede consultar los dispositivos digitalizadores disponibles que están conectados a tablet PC y sus respectivas funcionalidades de hardware. Por ejemplo, puede determinar si la tableta con la que está trabajando está integrada con la pantalla o es un dispositivo externo independiente.
InkCollector (objeto)
El objeto InkCollector captura la entrada de lápiz de los dispositivos Tablet disponibles. El objeto InkCollector solo recopila tintas y gestos que se introducen en una ventana específica. Un receptor de eventos muy eficaz representa esta entrada en tiempo real. El objeto InkCollector captura la entrada y la dirige a un objeto Ink .
Nota
La colocación simultánea de tinta con varios lápices puede funcionar o no, dependiendo de las capacidades de hardware del dispositivo digitalizador.
Cómo funciona el recopilador de tintas
El objeto InkCollector se adjunta a una ventana de aplicación conocida. A continuación, permite a los usuarios emplear cualquier dispositivo tablet PC disponible (incluido el mouse) para poner tinta en tiempo real en esa ventana. Los trazos de lápiz que recopila se almacenan en un objeto Ink asociado. Estos trazos se pueden manipular o enviar a un reconocedor para el reconocimiento. El objeto InkCollector también notifica a la aplicación cuando un cursor entra en el rango de cualquiera de los dispositivos Tablet PC que se usan.
Para que el objeto InkCollector establezca con precisión el cursor del mouse dentro de una ventana habilitada para entrada de lápiz, esa ventana debe poder recibir el mensaje WM_SETCURSOR . Esto se realiza correctamente para todas las ventanas normales, pero, para un control dentro de un cuadro de diálogo, el elemento primario del cuadro de diálogo del control filtra este mensaje. Para que el control reciba el mensaje, establezca el estilo SS_NOTIFY .
InkOverlay (objeto)
El objeto InkCollector , descrito anteriormente, es útil para que las aplicaciones proporcionen su propio modelo para seleccionar, borrar y otra interacción del usuario. El objeto InkOverlay es un superconjunto del objeto InkCollector que proporciona compatibilidad de edición. Esto resulta útil para que las aplicaciones integren el dibujo de lápiz y la edición en su propio lienzo de documentos mediante un conjunto de modelos de selección de lápiz estándar que proporciona el objeto.
Tanto el objeto InkCollector como el objeto InkOverlay (así como el control InkPicture ) usan construcciones comunes, como el objeto Ink y la colección DrawingAttributes , de modo que la manera básica de cambiar el color de la entrada de lápiz es la misma en todas partes. Esto le permite reutilizar el código y tener acceso mediante programación común, lo que puede ser especialmente importante si ofrece compatibilidad con scripting en la aplicación.
InkOverlay es un objeto COM que resulta útil para escenarios de anotación en los que los usuarios no están preocupados por realizar el reconocimiento en la entrada de lápiz, sino que, en su lugar, están interesados en el tamaño, la forma, el color y la posición de la entrada de lápiz. Es muy adecuado para tomar notas y el escribo básico. La interfaz de usuario predeterminada es un rectángulo transparente con tinta opaca.
InkOverlay amplía la clase InkCollector de tres maneras:
- Genera eventos para los cambios de atributo begin-stroke, end-stroke y ink.
- Permite a los usuarios seleccionar, borrar y cambiar el tamaño de la entrada de lápiz.
- Admite comandos Cut, Copy y Paste.
Un escenario típico en el que InkOverlay es útil es marcar una diapositiva o imagen de presentación. El objeto InkOverlay permite una implementación sencilla de las funcionalidades de entrada de lápiz y diseño que requiere este escenario.
Para trabajar con InkOverlay, puede hacer lo siguiente:
- Cree una instancia de un objeto InkOverlay .
- Adjunte el hWnd (identificador, en código administrado) de una ventana a la propiedad hWnd del objeto InkOverlay (propiedad Handle, en código administrado).
- Establezca la propiedad Enabled del objeto InkOverlay en TRUE.
El objeto InkOverlay incluye compatibilidad básica de impresión, pero debe implementar la vista previa de impresión u otras funcionalidades avanzadas de impresión.
InkOverlay conserva la entrada de lápiz en formato serializado de entrada de lápiz (ISF).
Nota
Si el objeto EditingMode de InkOverlay está establecido en Eliminar o Seleccionar, se desencadenan otros eventos (como InkAdded, InkDeleted y Stroke). Estos eventos son útiles si desea implementar sus propios modos de eliminación o selección.
Selección de entrada de lápiz
El objeto InkOverlay permite a los usuarios usar una herramienta lazo para seleccionar objetos de entrada de lápiz contenidos en una región rastreada. Los usuarios también pueden seleccionar la entrada de lápiz pulsando cualquier objeto Ink .
Utilice la propiedad Selection para devolver una colección Strokes que puede usar para manipular la selección de un usuario.
Cuando se selecciona un objeto Ink o un conjunto de objetos Ink , los controladores de tamaño aparecen en las cuatro esquinas del rectángulo delimitador de la entrada de lápiz y en todos los puntos intermedios entre las esquinas adyacentes. Si el usuario arrastra cualquier parte de la región seleccionada, la entrada de lápiz se desplaza dentro del control.
Comportamiento predeterminado
El objeto InkOverlay se establece para recopilar la entrada de lápiz de forma predeterminada. La entrada de lápiz es de 53 unidades de espacio de entrada de lápiz de ancho (donde 1 unidad de espacio de tinta = 1 HIMETRIC). La entrada de lápiz es negra si el usuario no se está ejecutando en modo de contraste alto. De lo contrario, la entrada de lápiz se establece en el valor de COLOR_WINDOWTEXT (WindowText en código administrado). FitToCurve es FALSE.
Objetos Cursor y Button
Un cursor corresponde a la punta del lápiz que se usa en tablet PC. Por ejemplo, un lápiz tiene dos extremos. Normalmente, se usa un extremo para escribir y el otro se usa para borrar. Estos dos extremos corresponden a dos cursores. La clase Cursor no se confunde con System.Windows.Forms.Cursor.
En tablet PC, normalmente se define un cursor que se usará para escribir o borrar. Un cursor puede cambiar potencialmente los roles si la aplicación habilita esta funcionalidad. Algunos dispositivos tablet PC permiten varios lápices. Cada cursor tiene un identificador de cursor asociado que es único en el sistema. Un cursor puede tener cero o más botones asociados. Estos botones se proporcionan a la aplicación como objetos CursorButton. La aplicación puede proporcionar un objeto DrawingAttributes específico para cualquier cursor determinado.
Drawing Attributes (objeto)
Un objeto DrawingAttributes describe cómo se va a dibujar cualquier conjunto conocido de entrada de lápiz. Un objeto DrawingAttributes incluye propiedades básicas como Color, Width y PenTip. También puede abarcar parámetros avanzados, como la transparencia variable y el suavizado bezier, que pueden proporcionar efectos interesantes o mejorar la legibilidad de entrada de lápiz.
PenInputPanel (objeto)
Nota
La clase PenInputPanel está en desuso. La clase PenInputPanel se ha reemplazado por la clase TextInputPanel .
El objeto PenInputPanel permite agregar fácilmente entradas de lápiz en contexto a las aplicaciones. PenInputPanel está disponible como un objeto adjuntable que le permite agregar la funcionalidad panel de entrada del PC tableta a los controles existentes. La interfaz de usuario es obligatoria en gran medida por el idioma de entrada actual. Tiene la opción de elegir el método de entrada predeterminado para PenInputPanel, ya sea escritura a mano o teclado. El usuario final puede cambiar entre métodos de entrada mediante botones en la interfaz de usuario.
Temas relacionados