Condividi tramite


Raccolta input penna

La raccolta penna inizia con il digitalizzatore. Un utente inserisce una penna sul digitalizzatore e inizia a scrivere. È possibile usare le funzionalità della raccolta input penna dell'API per gestire la raccolta di dati penna che "scorre" dalla penna. È possibile accedere alle informazioni sull'hardware disponibile in Tablet PC tramite l'insieme Tablets e l'oggetto Tablet . Usare quindi l'oggetto InkCollector per ottenere i dati provenienti dal digitalizzatore.

Tablet e l'oggetto Tablet

Un tablet rappresenta un dispositivo digitalizzatore di Tablet PC. Un PC tablet può avere più di un digitalizzatore. Usando l'oggetto Tablet , è possibile eseguire una query per i dispositivi digitalizzatore disponibili collegati a Tablet PC e le rispettive funzionalità hardware. Ad esempio, è possibile determinare se il tablet con cui si lavora è integrato con lo schermo o è un dispositivo esterno separato.

Oggetto InkCollector

L'oggetto InkCollector acquisisce l'input penna dai dispositivi Tablet disponibili. L'oggetto InkCollector raccoglie solo input penna e movimenti in una finestra specifica. Un sink di eventi molto efficiente esegue il rendering di questo input in tempo reale. L'oggetto InkCollector acquisisce l'input e lo indirizza in un oggetto Input penna .

Nota

La disposizione simultanea dell'inchiostro con più penne può funzionare o meno, a seconda delle funzionalità hardware del dispositivo digitalizzatore.

 

Funzionamento dell'agente di raccolta input penna

L'oggetto InkCollector si collega a una finestra dell'applicazione nota. Consente quindi agli utenti di usare qualsiasi dispositivo Tablet PC disponibile (incluso il mouse) per la disposizione dell'input penna in tempo reale in tale finestra. I tratti penna raccolti vengono archiviati in un oggetto Ink associato. Questi tratti possono quindi essere modificati o inviati a un riconoscimento per il riconoscimento. L'oggetto InkCollector notifica anche all'applicazione quando un cursore entra in un intervallo di dispositivi Tablet PC usati.

Per l'oggetto InkCollector per impostare con precisione il cursore del mouse all'interno di una finestra abilitata per l'input penna, tale finestra deve essere in grado di ricevere il messaggio di WM_SETCURSOR . Questa operazione ha esito positivo per tutte le finestre regolari, ma per un controllo all'interno di una finestra di dialogo, l'elemento padre del controllo filtra questo messaggio. Per ricevere il messaggio, impostare lo stile di SS_NOTIFY .

Oggetto InkOverlay

L'oggetto InkCollector , illustrato in precedenza, è utile per le applicazioni per fornire il proprio modello per selezionare, cancellare e altre interazioni utente. L'oggetto InkOverlay è un superset dell'oggetto InkCollector che fornisce supporto per la modifica. Ciò è utile per le applicazioni per integrare il disegno penna e la modifica nell'area di disegno del documento usando un set di modelli di selezione input penna standard forniti dall'oggetto.

Sia l'oggetto InkCollector che l'oggetto InkOverlay (nonché il controllo InkPicture ) usano costrutti comuni, ad esempio l'oggetto Ink e l'insieme DrawingAttributes , in modo che il modo di base per modificare il colore dell'input penna sia lo stesso ovunque. Ciò consente di riutilizzare il codice e di avere accesso a livello di codice comune, che può essere particolarmente importante se si offre il supporto di script nell'applicazione.

InkOverlay è un oggetto COM utile per gli scenari di annotazione in cui gli utenti non sono interessati a eseguire il riconoscimento sull'input penna ma, invece, sono interessati alle dimensioni, alla forma, al colore e alla posizione dell'input penna. È adatto per prendere note e scarabocchiare di base. L'interfaccia utente predefinita è un rettangolo trasparente con input penna opaco.

InkOverlay estende la classe InkCollector in tre modi:

  • Genera eventi per modifiche all'attributo begin-stroke, end-stroke e input penna.
  • Consente agli utenti di selezionare, cancellare e ridimensionare l'input penna.
  • Supporta i comandi Cut, Copy e Paste.

Uno scenario tipico in cui InkOverlay è utile per contrassegnare una diapositiva o un'immagine di presentazione. L'oggetto InkOverlay consente di semplificare l'implementazione delle funzionalità di input penna e layout necessarie per questo scenario.

Per usare InkOverlay, è possibile:

  1. Creare un'istanza di un oggetto InkOverlay .
  2. Collegare hWnd (handle, nel codice gestito) di una finestra alla proprietà hWnd dell'oggetto InkOverlay (proprietà Handle, nel codice gestito).
  3. Impostare la proprietà Enabled dell'oggetto InkOverlay su TRUE.

L'oggetto InkOverlay include il supporto di stampa di base, ma è necessario implementare l'anteprima di stampa o altre funzionalità di stampa avanzate.

InkOverlay mantiene l'input penna in formato serializzato input penna (ISF).

Nota

Se l'oggetto EditingMode dell'oggetto InkOverlay è impostato su Delete o Select, vengono attivati altri eventi, ad esempio InkAdded,InkDeleted e Stroke. Questi eventi sono utili se si desidera implementare le modalità di eliminazione o selezione personalizzate.

 

Selezione input penna

L'oggetto InkOverlay consente agli utenti di usare uno strumento lasso per selezionare oggetti input penna contenuti in un'area tracciata. Gli utenti possono anche selezionare input penna toccando qualsiasi oggetto Input penna .

Utilizzare la proprietà Selection per restituire un insieme Strokes che è possibile usare per modificare la selezione di un utente.

Quando viene selezionato un oggetto Input penna o un set di oggetti Input penna, i handle di ridimensionamento vengono visualizzati nei quattro angoli del rettangolo di selezione dell'input penna e in tutti i punti intermedi tra gli angoli adiacenti. Se l'utente trascina ovunque all'interno dell'area selezionata, l'input penna diventa rimovibile all'interno del controllo.

Comportamento predefinito

L'oggetto InkOverlay è impostato per raccogliere l'input penna per impostazione predefinita. L'input penna è 53 unità di spazio penna wide (dove 1 unità spazio penna = 1 HIMETRIC). L'input penna è nero se l'utente non è in esecuzione in modalità a contrasto elevato. In caso contrario, l'input penna è impostato sul valore COLOR_WINDOWTEXT (WindowText nel codice gestito). FitToCurve è FALSE.

Oggetti cursore e pulsante

Un cursore corrisponde alla punta della penna usata su Tablet PC. Ad esempio, una matita ha due estremità. In genere, un'estremità viene usata per la scrittura e l'altra viene usata per cancellare. Queste due estremità corrispondono a due cursori. La classe Cursor non è confusa con System.Windows.Forms.Cursor.

In Tablet PC viene in genere definito un cursore da usare per la scrittura o l'cancellazione. Un cursore può potenzialmente modificare i ruoli se l'applicazione abilita questa funzionalità. Alcuni dispositivi Tablet PC consentono più penne. Ogni cursore ha un ID cursore associato univoco nel sistema. Un cursore può avere zero o più pulsanti associati. Questi pulsanti vengono forniti all'applicazione come oggetti CursorButton. L'applicazione può fornire un oggetto DrawingAttributes specifico per qualsiasi cursore specificato.

Oggetto Attributi disegno

Un oggetto DrawingAttributes descrive come deve essere disegnato qualsiasi set noto di input penna. Un oggetto DrawingAttributes include proprietà di base, ad esempio Color, Width e PenTip. Può anche includere parametri avanzati, ad esempio trasparenza variabile e smoothing bezier, che possono fornire effetti interessanti o migliorare la leggibilità dell'inchiostro.

Oggetto PenInputPanel

Nota

La classe PenInputPanel è stata deprecata. La classe PenInputPanel è stata sostituita dalla classe TextInputPanel .

 

L'oggetto PenInputPanel consente di aggiungere facilmente input penna sul posto alle applicazioni. PenInputPanel è disponibile come oggetto collegato che consente di aggiungere funzionalità del pannello di input tablet PC ai controlli esistenti. L'interfaccia utente è in gran parte dovuta al linguaggio di input corrente. È possibile scegliere il metodo di input predefinito per PenInputPanel, grafia o tastiera. L'utente finale può passare dai metodi di input usando i pulsanti nell'interfaccia utente.

Classe InkCollector (C++)

Classe InkOverlay (C++)

Spazio dei nomi Microsoft.Ink