Condividi tramite


Classe InkCollector

Rappresenta l'oggetto usato per acquisire input penna dai dispositivi tablet disponibili.

La creazione del controllo InkCollector dietro un controllo trasparente (ad esempio un oggetto GroupBox con il set di proprietà WS_EX_TRANSPARENT ) impedirà a InkCollector di raccogliere input penna.

InkCollector include questi tipi di membri:

Eventi

La classe InkCollector include questi eventi.

Event Descrizione
CursorButtonDown Si verifica quando InkCollector rileva un pulsante di cursore inattivo.
CursorButtonUp Si verifica quando InkCollector rileva un pulsante di cursore su.
CursorDown Si verifica quando la punta del cursore contatta la superficie del tablet di digitalizzazione.
Cursorinrange Si verifica quando un cursore entra nell'intervallo di rilevamento fisico (prossimità) del contesto del tablet.
CursorOutOfRange Si verifica quando il cursore lascia l'intervallo di rilevamento fisico (prossimità) del contesto del tablet.
Doubleclick Si verifica quando l'oggetto InkCollector viene fatto doppio clic.
Movimento Si verifica quando viene riconosciuto un gesto specifico dell'applicazione.
Mousedown Si verifica quando il puntatore del mouse si trova sull'oggetto InkCollector e viene premuto un pulsante del mouse.
Mousemove Si verifica quando il puntatore del mouse viene spostato sull'oggetto InkCollector .
Mouseup Si verifica quando il puntatore del mouse si trova sull'oggetto InkCollector e viene rilasciato un pulsante del mouse.
Mousewheel Si verifica quando la rotellina del mouse si sposta mentre l'oggetto InkCollector ha lo stato attivo.
NewInAirPackets Si verifica quando viene visualizzato un pacchetto in aria, che si verifica quando un utente sposta una penna vicino al tablet e il cursore si trova all'interno della finestra dell'oggetto InkCollector o l'utente sposta un mouse all'interno della finestra associata dell'oggetto oggetto InkCollector .
NewPackets Si verifica quando l'oggetto InkCollector riceve pacchetti.
Infarto Si verifica al termine del disegno di un nuovo tratto su qualsiasi tablet.
SystemGesture Si verifica quando viene riconosciuto un movimento di sistema.
TabletAdded Si verifica quando un tablet viene aggiunto al sistema.
TabletRemoved Si verifica quando un tablet viene rimosso dal sistema.

Interfacce

La classe InkCollector definisce queste interfacce.

Interfaccia Descrizione
IInkCollector Questo oggetto implementa l'interfaccia COM IInkCollector .

Metodi

La classe InkCollector include questi metodi.

Metodo Descrizione
GetEventInterest Recupera lo stato corrente di un particolare evento oggetto InkCollector , ovvero se l'evento viene ascoltato o usato.
GetGestureStatus Recupera se l'oggetto InkCollector è interessato a un determinato movimento.
GetWindowInputRectangle Recupera il rettangolo della finestra, in pixel, all'interno del quale viene disegnato l'input penna.
SetAllTabletsMode Questa modalità consente all'oggetto InkCollector di raccogliere input penna da qualsiasi tablet collegato al PC tablet.
SetEventInterest Modifica un valore che indica se un evento specifico deve essere in ascolto o usato.
SetGestureStatus Modifica l'interesse dell'oggetto InkCollector in un gesto noto.
SetSingleTabletIntegratedMode Questa modalità consente all'oggetto InkCollector di raccogliere input penna da un solo tablet. L'input penna da altri tablet viene ignorato dall'oggetto InkCollector .
SetWindowInputRectangle Modifica il rettangolo della finestra, in pixel, da usare per eseguire il mapping dell'input penna disegnato alla finestra.

Proprietà

La classe InkCollector ha queste proprietà.

Proprietà Tipo di accesso Descrizione
AutoRedraw
Sola lettura
Ottiene o imposta un valore che specifica se inkCollector esegue il repaint dell'input penna quando la finestra non è valida.
RaccoltaInk
Sola lettura
Ottiene un valore che specifica se l'input penna è attualmente in fase di disegno in un oggetto InkCollector .
CollectionMode
Sola lettura
Ottiene o imposta la modalità raccolta che determina se l'input penna, i movimenti o entrambi vengono riconosciuti come scrive l'utente.
Cursori
Sola lettura
Ottiene l'insieme Cursors disponibile per l'uso nell'area di input penna.
DefaultDrawingAttributes
Sola lettura
Ottiene o imposta l'oggetto InkDrawingAttributes predefinito, che specifica gli attributi di disegno usati durante il disegno e la visualizzazione dell'input penna.
DesiredPacketDescription
Sola lettura
Ottiene o imposta l'interesse sugli aspetti del pacchetto associato all'input penna disegnato nell'oggetto InkCollector .
DynamicRendering
Sola lettura
Ottiene o imposta un valore che indica se viene eseguito il rendering dell'input penna mentre viene disegnato.
Attivato
Sola lettura
Ottiene o imposta un valore che specifica se l'oggetto InkCollector raccoglie l'input penna.
Handle
Sola lettura
Ottiene o imposta l'handle della finestra a cui è associato l'oggetto InkCollector .
Input penna
Sola lettura
Ottiene o imposta l'oggetto InkDisp associato all'oggetto InkCollector .
MarginX
Sola lettura
Ottiene o imposta i margini lungo l'asse x, in pixel.
MarginY
Sola lettura
Ottiene o imposta i margini lungo l'asse y, in pixel.
MouseIcon
Sola lettura
Ottiene o imposta l'icona del mouse personalizzata corrente.
Mousepointer
Sola lettura
Ottiene o imposta un valore che indica il tipo di puntatore del mouse visualizzato quando il mouse si trova su una determinata parte dell'oggetto.
Renderer
Sola lettura
Ottiene o imposta l'oggetto InkRenderer utilizzato per disegnare l'input penna.
SupportHighContrastInk
Sola lettura
Ottiene o imposta un valore che specifica se viene eseguito il rendering dell'input penna come un solo colore quando il sistema è in modalità contrasto elevato.
Tablet
Sola lettura
Ottiene il dispositivo tablet attualmente utilizzato dall'oggetto InkCollector per raccogliere l'input.

Commenti

È possibile creare un'istanza di questo oggetto chiamando il metodo CoCreateInstance in C++.

L'oggetto InkCollector raccoglie solo input penna e movimenti che vengono inseriti nella finestra specifica a cui è associata. L'unico scopo di InkCollector è raccogliere l'input penna dall'hardware (ad esempio tramite un oggetto IInkCursor e IInkTablet ) e recapitarlo a un'applicazione. Funge essenzialmente da origine che distribuisce l'input penna in uno o più oggetti InkDisp diversi, che fungono da contenitore che contengono l'input penna distribuito.

Per usare un InkCollector, crearlo, indicare in quale finestra raccogliere l'input penna disegnato e abilitarlo. Dopo l'abilitazione, può essere impostata per la raccolta in una sola delle tre modalità (la modalità è specificata nell'enumerazione InkCollectionMode ):

  • InkOnly, in cui viene creato un oggetto IInkStrokeDisp .
  • GestureOnly, in cui viene creato un oggetto IInkGesture .
  • InkAndGesture, in cui viene creato un tratto, un movimento o potenzialmente entrambi, a seconda del modo in cui l'applicazione gestisce gli eventi.

Ciò significa che, per ogni movimento di un cursore compreso nell'intervallo di un tablet, InkCollector raccoglie sempre un tratto o un gesto e talvolta entrambi. Il supporto dei movimenti è integrato usando il riconoscimento movimento Microsoft.

Un InkCollector gestisce tutti gli input del tablet. L'inchiostro può essere raccolto contemporaneamente da tutte le compresse collegate (incluso il mouse). Le modifiche apportate agli oggetti IInkCursor e IInkCursorButton possono causare l'attivazione di un evento da parte dell'oggetto InkCollector .

Un InkCollector gestisce anche l'elenco di cursori che incontra durante la sua esistenza. Quando InkCollector rileva un nuovo cursore, l'evento CursorInRange viene generato con il parametro newCursor impostato su VARIANT_TRUE. Le applicazioni usano InkCollector per gestire i nuovi cursori.

È possibile associare più di un controllo InkCollector a un handle di finestra specifico, anche se le relative aree di raccolta, impostate nel costruttore o con il metodo SetWindowInputRectangle , si sovrappongono. Tuttavia, l'unico modo in cui questo scenario funziona è se ogni InkCollector chiama SetSingleTabletIntegratedMode e usa un tablet univoco. Questo comportamento semplifica l'archiviazione dell'input penna in un oggetto separato per ogni tablet.

Si verifica un errore se il rettangolo di input della finestra di un controllo InkCollectors abilitato (impostato con la proprietà Enabled ) sovrappone il rettangolo di input della finestra di un altro InkCollector abilitato.

Nota

La sovrapposizione può verificarsi senza un errore, purché solo uno dei rettangoli di input sia abilitato in qualsiasi momento noto.

Gli eventi MouseDown, MouseMove, MouseUp e MouseWheel restituiscono coordinate x e y in pixel e non le unità HIMETRIC associate allo spazio input penna. Questo perché questi eventi sostituiscono gli eventi del mouse di applicazioni non consapevoli della penna e queste applicazioni comprendono solo i pixel.

Nota

L'oggetto InkCollector non può essere rilasciato in modo sicuro in un thread non dell'interfaccia utente.

Per migliorare le prestazioni dell'applicazione, eliminare l'oggetto InkCollector quando non è più necessario.

Requisiti

Requisito Valore
Client minimo supportato
Windows XP Tablet PC Edition [solo app desktop]
Server minimo supportato
Nessuno supportato
Intestazione
Msinkaut.h (richiede anche Msinkaut_i.c)
Libreria
InkObj.dll

Vedi anche

Informazioni di riferimento sul controllo InkEdit

Classe InkDisp

Classe InkOverlay

Informazioni di riferimento sul controllo InkPicture