Condividi tramite


oggetti sInk e tInk

Per supportare il supporto dell'input penna nelle applicazioni, sono disponibili due oggetti, entrambi incorporati e supportati da qualsiasi contenitore OLE. Vengono prodotti chiamando il metodo Ink.ClipboardCopy (Rectangle, InkClipboardFormats, InkClipboardModes) o il metodo Ink.ClipboardCopy (Strokes, InkClipboardFormats, InkClipboardModes) e sono:

  • Oggetto input penna di testo (tInk). Si tratta di un oggetto OLE che rappresenta l'input penna previsto per formare parole. Un oggetto tInk consente di convertire l'input penna scritto a mano in testo, come testo restituito da un riconoscitore o la scelta presa da un elenco di alternative di riconoscimento. Il colore e le dimensioni dell'input penna possono essere impostati a livello di codice e possono essere basati sugli attributi del testo intorno all'oggetto. L'oggetto tInk deve contenere una singola parola. L'oggetto tInk è un piccolo oggetto leggero che può eseguire semplici operazioni come il rendering (dato un handle a un contesto di dispositivo (HDC) e un RECT) e la persistenza (dato un flusso). L'uso di un oggetto tInk consente un'esperienza utente senza problemi quando si lavora in un'applicazione che usa l'input della grafia e del testo.
  • Oggetto input penna schizzo (sInk). Si tratta di un oggetto OLE che rappresenta l'input penna che non deve formare parole. Un oggetto sInk viene interpretato come un disegno. Un oggetto sInk è utile anche per rappresentare più parole.

Questi oggetti possono essere usati per l'interoperabilità tra applicazioni, inserendoli nello slot di oggetti OLE negli Appunti o incorporandoli in RTF (Rich Text Format).

È possibile usare gli oggetti tInk e sInk nei modi seguenti:

  • Sia gli oggetti tInk che sInk sono supportati in Microsoft Word 2002. Gli utenti possono inserire input penna in un documento Word usando i pannelli di input di testo di scrittura e disegno forniti in Word 2002. Questo input penna viene incorporato nel file Word come oggetto OLE con CLSID dell'oggetto sInk o tInk.
  • Il controllo Tablet PC InkEdit usa l'oggetto tInk. Il controllo InkEdit è una sottoclasse del controllo RichTextBox standard. L'input penna viene inserito nel flusso RTF del controllo InkEdit come oggetto tInk.
  • Quando un'applicazione sposta un oggetto Input penna selezionato negli Appunti, lo slot degli Appunti dell'oggetto OLE contiene un oggetto tInk o sInk OLE.

Ad esempio, l'applicazione può riconoscere la grafia e contrassegnare qualsiasi oggetto Ink come oggetto tInk. Quindi, se si seleziona una parola in input penna e si copia e la si incolla in Word, le alternative per tale parola vengono visualizzate in Word 2002.

Nota

Il supporto degli Appunti della piattaforma Tablet PC seleziona automaticamente il flag EMF (Enhanced Metafile) quando si posiziona un oggetto sInk o tInk negli Appunti come oggetto OLE. L'oggetto stesso viene archiviato negli Appunti negli slot dell'origine di incorporamento e del descrittore di oggetti.

 

Come un altro esempio, usando l'oggetto sInk, è possibile disegnare uno schizzo a penna in un'applicazione, copiare e incollare lo schizzo in Word 2002 e quindi modificare il disegno usando Tablet PC Input Panel in Word.

Per contenere correttamente oggetti tInk, un'applicazione deve implementare il supporto del contenitore OLE per gli oggetti incorporati. Quindi, per rendere il contenitore completamente supportato tInk, è necessario istituto:

  • Modifiche al codice per Trova e sostituisci. Anziché ignorare gli oggetti incorporati nella ricerca, questi oggetti devono essere interrogati per tipo. Se si tratta di un oggetto tInk, è necessario crearne un'istanza ed eseguire query sul testo corrispondente.
  • Modifiche al comportamento di selezione. La selezione di oggetti tInk non deve mai essere visualizzata con handle di ridimensionamento. Devono essere selezionate nello stesso modo in cui il testo viene selezionato nel documento. Il codice di selezione per gli oggetti deve rilevare se il tipo è tInk e visualizzare la selezione in modo appropriato.
  • Uso delle proprietà di ambiente. Le proprietà di ambiente, ad esempio le dimensioni del carattere, il colore e la formattazione grassetto devono essere trasmesse all'oggetto tInk. L'applicazione di queste proprietà modifica la larghezza dell'input penna scritto a mano, pertanto è necessario un aggiornamento delle dimensioni chiamando il metodo GetInkExtent o IOleObject::GetExtent .
  • Eseguire l'override dell'elaborazione predefinita del metodo IOleObject::D oVerb . Ciò consente la conversione in testo per passare un batch di oggetti tInk al riconoscitore, che può quindi suddividere le parole in segmenti di riconoscimento.

Per altre informazioni sull'interruzione delle parole nei segmenti di riconoscimento, vedere Segmenti di riconoscimento.