Classe InkCollector
Representa o objeto usado para capturar tinta de dispositivos tablet disponíveis.
Criar o 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.
O InkCollector tem estes 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á ativado. |
CursorDown | Ocorre quando a dica de 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. |
Traço | 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 evento de objeto InkCollector específico, 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, no 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 repinta 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 escrita à tinta. |
DefaultDrawingAttributes |
Somente leitura |
Obtém ou define o objeto InkDrawingAttributes padrão, que especifica os atributos de desenho 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. |
Enabled |
Somente leitura |
Obtém ou define um valor que especifica se o objeto InkCollector coleta a entrada da caneta. |
Lidar com |
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. |
Margem |
Somente leitura |
Obtém ou define as margens ao longo do eixo y, em pixels. |
MouseIcon |
Somente leitura |
Obtém ou define o ícone de 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 à 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 coletar 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 manipula 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 de tablet. A tinta pode ser coletada de todos os tablets anexados (incluindo o mouse) simultaneamente. As 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 parâmetro newCursor 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 Enabled ) 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 de 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 |
|
Biblioteca |
|