Clase InkCollector

Representa el objeto que se usa para capturar la entrada de lápiz de los dispositivos de tableta disponibles.

La creación del control InkCollector detrás de un control transparente (por ejemplo, un GroupBox con el conjunto de propiedades WS_EX_TRANSPARENT ) impedirá que InkCollector recopile la entrada de lápiz.

InkCollector tiene estos tipos de miembros:

Eventos

La clase InkCollector tiene estos eventos.

Evento Descripción
CursorButtonDown Se produce cuando InkCollector detecta un botón de cursor que está inactivo.
CursorButtonUp Se produce cuando InkCollector detecta un botón de cursor que está activo.
CursorDown Se produce cuando la punta del cursor se pone en contacto con la superficie de la tableta de digitalización.
CursorInRange Se produce cuando un cursor entra en el intervalo de detección física (proximidad) del contexto de la tableta.
CursorOutOfRange Se produce cuando el cursor deja el intervalo de detección física (proximidad) del contexto de la tableta.
Doubleclick Se produce cuando se hace doble clic en el objeto InkCollector .
Gesto Se produce cuando se reconoce un gesto específico de la aplicación.
MouseDown Se produce cuando el puntero del mouse está sobre el objeto InkCollector y se presiona un botón del mouse.
MouseMove Se produce cuando el puntero del mouse se mueve sobre el objeto InkCollector .
MouseUp Se produce cuando el puntero del mouse está sobre el objeto InkCollector y se suelta un botón del mouse.
Mousewheel Se produce cuando la rueda del mouse se mueve mientras el objeto InkCollector tiene el foco.
NewInAirPackets Se produce cuando se ve un paquete en el aire, que ocurre cuando un usuario mueve un lápiz cerca de la tableta y el cursor está dentro de la ventana del objeto InkCollector o el usuario mueve un mouse dentro de la ventana asociada del objeto InkCollector .
NewPackets Se produce cuando el objeto InkCollector recibe paquetes.
Carrera Se produce cuando el usuario termina de dibujar un nuevo trazo en cualquier tableta.
SystemGesture Se produce cuando se reconoce un gesto del sistema.
TabletAdded Se produce cuando se agrega una tableta al sistema.
TabletRemoved Se produce cuando se quita una tableta del sistema.

Interfaces

La clase InkCollector define estas interfaces.

Interfaz Descripción
IInkCollector Este objeto implementa la interfaz COM de IInkCollector .

Métodos

La clase InkCollector tiene estos métodos.

Método Descripción
GetEventInterest Recupera el estado actual de un evento de objeto InkCollector determinado, es decir, si el evento se escucha o se usa.
GetGestureStatus Recupera si el objeto InkCollector está interesado en un gesto determinado.
GetWindowInputRectangle Recupera el rectángulo de ventana, en píxeles, dentro del cual se dibuja la entrada de lápiz.
SetAllTabletsMode Este modo permite que el objeto InkCollector recopile tinta de cualquier tableta conectada al pc tablet.
SetEventInterest Modifica un valor que indica si se debe escuchar o usar un evento específico.
SetGestureStatus Modifica el interés del objeto InkCollector en un gesto conocido.
SetSingleTabletIntegratedMode Este modo permite que el objeto InkCollector recopile tinta solo de una tableta. El objeto InkCollector omite la entrada de lápiz de otras tabletas.
SetWindowInputRectangle Modifica el rectángulo de la ventana, en píxeles, para usarlo para asignar tinta dibujada a la ventana.

Propiedades

La clase InkCollector tiene estas propiedades.

Propiedad Tipo de acceso Descripción
AutoRedraw
Solo lectura
Obtiene o establece un valor que especifica si inkCollector vuelve a dibujar la entrada de lápiz cuando se invalida la ventana.
CollectingInk
Solo lectura
Obtiene un valor que especifica si la entrada de lápiz se dibuja actualmente en un objeto InkCollector .
CollectionMode
Solo lectura
Obtiene o establece el modo de colección que determina si la entrada de lápiz, los gestos o ambos se reconocen como escribe el usuario.
Cursores
Solo lectura
Obtiene la colección Cursors que está disponible para su uso en la región de entrada manuscrita .
DefaultDrawingAttributes
Solo lectura
Obtiene o establece el objeto InkDrawingAttributes predeterminado, que especifica los atributos de dibujo que se usan al dibujar y mostrar tinta.
DesiredPacketDescription
Solo lectura
Obtiene o establece interés en aspectos del paquete asociado con la entrada de lápiz dibujada en el objeto InkCollector .
DynamicRendering
Solo lectura
Obtiene o establece un valor que indica si la entrada de lápiz se representa a medida que se dibuja.
habilitado
Solo lectura
Obtiene o establece un valor que especifica si el objeto InkCollector recopila la entrada del lápiz.
Handle
Solo lectura
Obtiene o establece el identificador de la ventana a la que está asociado el objeto InkCollector .
Entrada de lápiz
Solo lectura
Obtiene o establece el objeto InkDisp asociado al objeto InkCollector .
MarginX
Solo lectura
Obtiene o establece los márgenes a lo largo del eje X, en píxeles.
MarginY
Solo lectura
Obtiene o establece los márgenes a lo largo del eje Y, en píxeles.
MouseIcon
Solo lectura
Obtiene o establece el icono del mouse personalizado actual.
Mousepointer
Solo lectura
Obtiene o establece un valor que indica el tipo de puntero del mouse que aparece cuando el mouse está sobre una parte determinada del objeto.
Representador
Solo lectura
Obtiene o establece el objeto InkRenderer que se usa para dibujar tinta.
SupportHighContrastInk
Solo lectura
Obtiene o establece un valor que especifica si la entrada de lápiz se representa como un solo color cuando el sistema está en modo de contraste alto.
Tablet
Solo lectura
Obtiene el dispositivo de tableta que el objeto InkCollector está usando actualmente para recopilar la entrada.

Comentarios

Este objeto se puede crear una instancia llamando al método CoCreateInstance en C++.

El objeto InkCollector recopila solo la entrada de lápiz y los gestos que se introducen en la ventana específica con la que está asociada. El único propósito de InkCollector es recopilar tinta del hardware (por ejemplo, a través de un objeto IInkCursor e IInkTablet ) y entregarlo a una aplicación. Básicamente actúa como el origen que distribuye la entrada de lápiz en uno o muchos objetos InkDisp diferentes, que actúan como contenedor que contiene la entrada de lápiz distribuida.

Para usar un InkCollector, debe crearlo, indicarlo en qué ventana recopilar entrada de lápiz dibujada y habilitarla. Una vez habilitado, se puede establecer para recopilar solo en uno de los tres modos (el modo se especifica en la enumeración InkCollectionMode ):

  • InkOnly, en el que se crea un objeto IInkStrokeDisp .
  • GestureOnly, en el que se crea un objeto IInkGesture .
  • InkAndGesture, en el que se crea un trazo, un gesto o potencialmente ambos, en función de cómo controla la aplicación los eventos.

Esto significa que, para cada movimiento de un cursor que se encuentra dentro del intervalo de una tableta, InkCollector siempre recopila un trazo o un gesto y, a veces, ambos. La compatibilidad con gestos está integrada con el reconocedor de gestos de Microsoft.

Un InkCollector controla todas las entradas de tableta. La tinta se puede recopilar de todas las tabletas conectadas (incluido el mouse) simultáneamente. Los cambios en los objetos IInkCursor e IInkCursorButton pueden hacer que inkCollector se active un evento.

Un InkCollector también administra la lista de cursores que encuentra durante su existencia. Cuando inkCollector encuentra un nuevo cursor, el evento CursorInRange se activa con el parámetro newCursor establecido en VARIANT_TRUE. Las aplicaciones usan InkCollector para administrar nuevos cursores.

Se puede asociar más de un inkCollector a un identificador de ventana determinado, incluso si sus áreas de colección, se establecen en el constructor o con el método SetWindowInputRectangle , se superponen. Sin embargo, la única manera en que funciona este escenario es si cada inkCollector llama a SetSingleTabletIntegratedMode y usa una tableta única. Este comportamiento facilita el almacenamiento de tinta en un objeto independiente para cada tableta.

Se produce un error si el rectángulo de entrada de ventana de un InkCollectors habilitado (establecido con la propiedad Enabled ) se superpone al rectángulo de entrada de ventana de otro InkCollector habilitado.

Nota

La superposición puede producirse sin un error siempre que solo se habilite uno de los rectángulos de entrada en cualquier momento conocido.

Los eventos MouseDown, MouseMove, MouseUp y MouseWheel devuelven coordenadas x e y en píxeles, y no las unidades HIMETRIC asociadas al espacio de entrada de lápiz. Esto se debe a que estos eventos reemplazan los eventos del mouse de las aplicaciones que no reconocen el lápiz y estas aplicaciones solo comprenden píxeles.

Nota

El objeto InkCollector no se puede liberar de forma segura en un subproceso que no sea de interfaz de usuario.

Para mejorar el rendimiento de la aplicación, elimine el objeto InkCollector cuando ya no sea necesario.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP Tablet PC Edition [solo aplicaciones de escritorio]
Servidor mínimo compatible
No se admite ninguno
Encabezado
Msinkaut.h (también requiere Msinkaut_i.c)
Biblioteca
InkObj.dll

Consulte también

Referencia del control InkEdit

InkDisp (clase)

InkOverlay (clase)

Referencia del control InkPicture