Classe InkCollector

Representa o objeto usado para capturar tinta de dispositivos tablet disponíveis.

A criação do controle InkCollector por trás de um controle transparente (como um GroupBox com o conjunto de propriedades WS_EX_TRANSPARENT ) impedirá o InkCollector de coletar tinta.

InkCollector tem esses tipos de membros:

Eventos

A classe InkCollector tem esses eventos.

Evento Descrição
CursorButtonDown Ocorre quando o InkCollector detecta um botão de cursor que está inativo.
CursorButtonUp Ocorre quando o InkCollector detecta um botão de cursor que está em cima.
CursorDown Ocorre quando a dica do cursor entra em contato com a superfície do tablet de digitalização.
CursorInRange Ocorre quando um cursor entra no intervalo de detecção física (proximidade) do contexto do tablet.
CursorOutOfRange Ocorre quando o cursor deixa o intervalo de detecção física (proximidade) do contexto do tablet.
Doubleclick Ocorre quando o objeto InkCollector é clicado duas vezes.
Gesto Ocorre quando um gesto específico do aplicativo é reconhecido.
Mousedown Ocorre quando o ponteiro do mouse está sobre o objeto InkCollector e um botão do mouse é pressionado.
Mousemove Ocorre quando o ponteiro do mouse é movido sobre o objeto InkCollector .
Mouseup Ocorre quando o ponteiro do mouse está sobre o objeto InkCollector e um botão do mouse é liberado.
Mousewheel Ocorre quando a roda do mouse se move enquanto o objeto InkCollector tem foco.
NewInAirPackets Ocorre quando um pacote no ar é visto, o que acontece quando um usuário move uma caneta perto do tablet e o cursor está dentro da janela do objeto InkCollector ou o usuário move um mouse dentro da janela associada do objeto InkCollector .
NewPackets Ocorre quando o objeto InkCollector recebe pacotes.
Curso Ocorre quando o usuário termina de desenhar um novo traço em qualquer tablet.
Systemgesture Ocorre quando um gesto do sistema é reconhecido.
Tablet Adicionado Ocorre quando um Tablet é adicionado ao sistema.
TabletRemoved Ocorre quando um Tablet é removido do sistema.

Interfaces

A classe InkCollector define essas interfaces.

Interface Descrição
IInkCollector Esse objeto implementa a interface COM IInkCollector .

Métodos

A classe InkCollector tem esses métodos.

Método Descrição
GetEventInterest Recupera o estado atual de um determinado evento de objeto InkCollector , ou seja, se o evento está sendo escutado ou usado.
GetGestureStatus Recupera se o objeto InkCollector está interessado em um gesto específico.
GetWindowInputRectangle Recupera o retângulo da janela, em pixels, dentro do qual a tinta é desenhada.
SetAllTabletsMode Esse modo permite que o objeto InkCollector colete tinta de qualquer tablet anexado ao Tablet PC.
SetEventInterest Modifica um valor que indica se um evento específico deve ser escutado ou usado.
SetGestureStatus Modifica o interesse do objeto InkCollector em um gesto conhecido.
SetSingleTabletIntegratedMode Esse modo permite que o objeto InkCollector colete tinta de apenas um tablet. A tinta de outros tablets é ignorada pelo objeto InkCollector .
SetWindowInputRectangle Modifica o retângulo da janela, em pixels, a ser usado para mapear a tinta desenhada para a janela.

Propriedades

A classe InkCollector tem essas propriedades.

Propriedade Tipo de acesso Descrição
AutoRedraw
Somente leitura
Obtém ou define um valor que especifica se o InkCollector reintiza a tinta quando a janela é invalidada.
CollectingInk
Somente leitura
Obtém um valor que especifica se a tinta está sendo desenhada no momento em um objeto InkCollector .
Collectionmode
Somente leitura
Obtém ou define o modo de coleta que determina se tinta, gestos ou ambos são reconhecidos como gravações do usuário.
Cursores
Somente leitura
Obtém a coleção Cursors que está disponível para uso na região de inking.
DefaultDrawingAttributes
Somente leitura
Obtém ou define o objeto InkDrawingAttributes padrão, que especifica os atributos de desenho que são usados ao desenhar e exibir tinta.
DesiredPacketDescription
Somente leitura
Obtém ou define o interesse em aspectos do pacote associado à tinta desenhada no objeto InkCollector .
DynamicRendering
Somente leitura
Obtém ou define um valor que indica se a tinta é renderizada à medida que é desenhada.
Habilitado
Somente leitura
Obtém ou define um valor que especifica se o objeto InkCollector coleta a entrada de caneta.
Handle
Somente leitura
Obtém ou define o identificador da janela à qual o objeto InkCollector está anexado.
Tinta
Somente leitura
Obtém ou define o objeto InkDisp associado ao objeto InkCollector .
MarginX
Somente leitura
Obtém ou define as margens ao longo do eixo x, em pixels.
MarginY
Somente leitura
Obtém ou define as margens ao longo do eixo y, em pixels.
MouseIcon
Somente leitura
Obtém ou define o ícone do mouse personalizado atual.
Mousepointer
Somente leitura
Obtém ou define um valor que indica o tipo de ponteiro do mouse que aparece quando o mouse está sobre uma parte específica do objeto.
Renderizador
Somente leitura
Obtém ou define o objeto InkRenderer usado para desenhar tinta.
SupportHighContrastInk
Somente leitura
Obtém ou define um valor que especifica se a tinta é renderizada como apenas uma cor quando o sistema está no modo de Alto Contraste.
Tablet
Somente leitura
Obtém o dispositivo tablet que o objeto InkCollector está usando atualmente para coletar entrada.

Comentários

Esse objeto pode ser instanciado chamando o método CoCreateInstance em C++.

O objeto InkCollector coleta apenas tinta e gestos que são inseridos na janela específica com a qual ele está associado. A única finalidade do InkCollector é coletar tinta do hardware (por exemplo, por meio de um objeto IInkCursor e IInkTablet ) e entregá-la a um aplicativo. Ele essencialmente atua como a origem que distribui tinta em um ou muitos objetos InkDisp diferentes, que atuam como contêineres que contêm a tinta distribuída.

Para usar um InkCollector, crie-o, informe-o em qual janela coletar tinta desenhada e habilite-a. Depois de habilitado, ele pode ser definido para coleta em apenas um dos três modos (o modo é especificado na enumeração InkCollectionMode ):

  • InkOnly, no qual um objeto IInkStrokeDisp é criado.
  • GestureOnly, no qual um objeto IInkGesture é criado.
  • InkAndGesture, no qual um traço, um gesto ou potencialmente ambos são criados, dependendo de como o aplicativo lida com eventos.

Isso significa que, para cada movimento de um cursor que está dentro do intervalo de um tablet, o InkCollector sempre coleta um traço ou um gesto e, às vezes, ambos. O suporte a gestos é integrado usando o reconhecimento de gestos da Microsoft.

Um InkCollector manipula todas as entradas do tablet. A tinta pode ser coletada de todos os tablets anexados (incluindo o mouse) simultaneamente. Alterações nos objetos IInkCursor e IInkCursorButton podem fazer com que o objeto InkCollector dispare um evento.

Um InkCollector também gerencia a lista de cursores que encontra durante sua existência. Quando o InkCollector encontra um novo cursor, o evento CursorInRange é acionado com o novo parâmetroCursor definido como VARIANT_TRUE. Os aplicativos usam o InkCollector para gerenciar novos cursores.

Mais de um InkCollector pode ser associado a um identificador de janela específico, mesmo que suas áreas de coleção, definidas no construtor ou com o método SetWindowInputRectangle , se sobreponham. No entanto, a única maneira de esse cenário funcionar é se cada InkCollector chamar SetSingleTabletIntegratedMode e usar um tablet exclusivo. Esse comportamento facilita o armazenamento de tinta em um objeto separado para cada tablet.

Ocorrerá um erro se o retângulo de entrada da janela de um InkCollectors habilitado (definido com a propriedade Habilitada ) sobrepor o retângulo de entrada da janela de outro InkCollector habilitado.

Observação

A sobreposição pode ocorrer sem um erro, desde que apenas um dos retângulos de entrada esteja habilitado em qualquer momento conhecido.

Os eventos MouseDown, MouseMove, MouseUp e MouseWheel retornam coordenadas x e y em pixels, e não as unidades HIMETRIC associadas ao espaço à tinta. Isso ocorre porque esses eventos substituem os eventos do mouse de aplicativos sem reconhecimento de caneta e esses aplicativos entendem apenas pixels.

Observação

O objeto InkCollector não pode ser liberado com segurança em um thread que não seja da interface do usuário.

Para melhorar o desempenho do aplicativo, descarte o objeto InkCollector quando ele não for mais necessário.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows XP Tablet PC Edition [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Nenhum compatível
Cabeçalho
Msinkaut.h (também requer Msinkaut_i.c)
Biblioteca
InkObj.dll

Confira também

Referência de controle InkEdit

Classe InkDisp

Classe InkOverlay

Referência de controle InkPicture