Abilitazione della correzione del testo per i collettori di inchiostro personalizzati
Microsoft Tablet PC Input Panel è uno strumento potente per l'immissione di testo scritto a mano con una penna e la correzione di testo senza l'uso di una tastiera. Quando si usa il Pannello Input, un utente immette testo scrivendo a mano sulle superfici di inchiostrazione del pannello, il che fa sì che il Pannello Input riconosca la grafia dell'utente come testo. Dopo aver riconosciuto il testo, l'utente tocca Inserisci nel pannello di input per inserire il testo in un'applicazione o in un documento. Prima di inserire il testo, un utente ha accesso a un set di strumenti di correzione nel pannello di input. Questi includono la selezione di un risultato di riconoscimento alternativo, la possibilità di riscrivere un singolo carattere o persino di graffiare l'intera parola e riscrivere. Questi strumenti di correzione consentono a un utente di correggere sia gli errori di riconoscimento che gli errori umani.
Dopo che il testo immesso usando il Pannello di input si trova nel documento, gli utenti hanno accesso alla stessa funzionalità di correzione disponibile prima dell'inserimento in applicazioni basate su Windows Text Services Frameworke abilitate per i servizi di testo. A partire da Microsoft Windows XP Service Pack 2 Tablet PC Edition, tutte le applicazioni Rich Edit sono abilitate per impostazione predefinita da Servizi di testo e, a partire da Windows Vista, le applicazioni HTML sono abilitate per impostazione predefinita. La correzione nei documenti è disponibile solo nelle applicazioni basate su e abilitate per il Servizio di testo; ciò è dovuto al fatto che l'Input Panel dipende dalla capacità del Servizio di testo di archiviare le proprietà di testo associate, comprese le alternative di riconoscimento e gli oggetti di inchiostro, per fornire la correzione nei documenti.
Esistono tuttavia numerosi scenari, tra cui la correzione del riconoscimento vocale o la correzione del testo digitato mentre si è in movimento, che non iniziano con l'inserimento di testo usando il Pannello di Input, ma in cui la correzione all'interno del documento può essere estremamente utile per gli utenti di Tablet PC. Un esempio eccellente si trova in applicazioni che offrono superfici di inchiostrazione personalizzate per l'immissione di testo con una penna. Le superfici di input penna personalizzate sono un ottimo modo per consentire alle applicazioni di offrire funzionalità personalizzate specifiche per le attività di immissione di testo di ogni applicazione. Inoltre, le superfici di inchiostrazione personalizzate offrono un'esperienza utente Tablet PC completamente integrata, il che chiarisce che la penna è un dispositivo di inserimento di prima classe nelle applicazioni che le contengono. Tuttavia, le applicazioni che forniscono superfici di inchiostrazione personalizzate potrebbero non consentire o non essere in grado di fornire lo stesso livello di supporto per la correzione interna del documento tramite il Pannello di Input.
Le applicazioni basate su Servizi di testo o abilitate in cui la correzione in documenti è utile per la correzione del testo non immesso tramite il pannello di input sono in grado di usare i IHandWrittenTextInsertion API (Microsoft.TextInput.HandwrittenTextInsertion classe nel codice gestito)per abilitare la correzione nel documento per il testo immesso con altri mezzi. In questo modo, le applicazioni possono aggiungere economicamente un potente supporto di correzione alle superfici di input penna personalizzate o ad altri scenari di immissione di testo, e completare la loro storia di immissione di testo su Tablet PC. L'API IHandWrittenTextInsertion del pannello di input è inclusa nel sistema operativo Windows Vista e nell'ambito di Tablet Platform SDK versione 1.9 o successiva. Sono incluse sia una versione basata su .NET che una basata su COM dell'API. L'abilitazione della correzione nel documento per il testo non immesso tramite il pannello di input è supportata in Windows Vista e versioni successive. La correzione nel documento è disponibile solo per le lingue latine e non è in grado di visualizzare alcun carattere all'esterno del set di caratteri latini.
Come usare l'API HandwrittenTextInsertion in un'applicazione
Le modifiche necessarie a un'applicazione per integrare la correzione nel documento del pannello di input per il testo non immesso tramite il pannello di input e l'uso dell'APIIHandWrittenTextInsertionsono semplici. Tutto il codice di immissione di testo personalizzato dell'applicazione rimane invariato, ad eccezione dell'ultimo passaggio. Nel momento in cui il testo immesso utilizzando una superficie di inchiostro personalizzata, il riconoscimento vocale o altri mezzi deve essere visualizzato in un campo di testo con servizi di testo abilitati, l'applicazione invia il testo all'interfaccia IHandWrittenTextInsertion anziché inviarlo direttamente al campo di testo. Il componente programmabilità del pannello di input gestisce quindi l'inserimento del testo sia nel campo di testo che nell'archivio di backup di Servizi di testo. Quando si aggiunge il testo all'archivio di backup di Servizi di testo, il componente programmabilità del pannello di input gestisce l'impostazione delle proprietà di testo richieste dal pannello di input per abilitare la correzione nel documento per tale testo.
La sezione seguente illustra in dettaglio questo processo per un'applicazione C++ usando la versione COM dell'API IHandWrittenTextInsertion. Sono disponibili note ovunque i passaggi per utilizzare la versione .NET Framework dell'API in C# differiscono rispetto all'uso della versione COM in C++. L'API gestita HandwrittenTextInsertion include una singola interfaccia COM, IHandwrittenTextInsertion. La definizione per questa interfaccia si trova in PenInputPanel.h e PenInputPanel_i.c.
Prima di tutto, l'applicazione deve usare la funzioneCoCreateInstance per produrre un'istanza di IHandWrittenTextInsertion con ID classe CLSID_HandwrittenTextInsertion. Si noti che la creazione di un oggetto CLSID_HandwrittenTextInsertion avrà esito positivo solo dopo che una finestra è stata creata e le è stato dato lo stato attivo, perché fino a quel momento la memoria di supporto dei Servizi di testo non viene attivata. Inoltre, se tiptsf.dll non è presente nel sistema, la funzione CoCreateInstance ha esito negativo e restituisce REGDB_E_CLASSNOTREG, a indicare che la correzione nel documento del pannello di input non è supportata nel sistema. A questo punto l'applicazione dovrebbe procedere senza tentare di abilitare la correzione in-documento del Pannello di Input. L'istanza di InserimentoTestoManoscritto deve essere accessibile dal codice dell'applicazione che gestisce l'inserimento di testo in un campo di testo.
Nota
Quando si usa la versione .NET Framework dell'API, l'applicazione deve aggiungere un'istruzione using per consentire l'accesso all'spazio dei nomi Microsoft.Ink.TextInput e quindi creare direttamente l'oggetto.
In secondo luogo, il codice dell'applicazione responsabile dell'inserimento di testo in un campo di testo deve essere modificato in modo che non inserisca più testo in un campo di testo direttamente, ma chiama uno o l'altro di IHandwrittenTextInsertioni due metodi di inserimento. Se le applicazioni devono scegliere di chiamare InsertRecognitionResultsArray o InsertRecognitionResults dipende dal fatto che l'applicazione abbia le alternative di riconoscimento per il testo memorizzate come matrice o come oggetto IInkRecognitionResult.
Nota
Quando si lavora nel codice gestito, l'oggetto di riconoscimento corrispondente utilizzato da InsertRecognitionResultsArray è RecognitionResult. Entrambi i metodi usano i tre parametri seguenti:
- alternanti è una raccolta bidimensionale di stringhe, archiviata come array di matrici o come oggetto IInkRecognitionResult (o RecognitionResult). Se le alternative vengono archiviate come matrice di matrici, deve essere passato come puntatore a matrice sicuro. Ogni voce nell'array di primo livello è un elenco di alternative per una singola parola nell'inserimento. La voce in corrispondenza della posizione zero nelle sottomatrici di alternative è il testo inserito nel campo di testo. Le alternative aggiuntive (indici da 1 a n in ogni sottomaschera) vengono archiviate nell'archivio di backup di Servizi di testo e offerte all'utente come parte della correzione nel documento. Se non sono incluse alternative, l'utente visualizza "Nessun suggerimento" al posto dell'elenco di alternative. Se un'inserzione contiene più parole con spazi tra di loro, ogni spazio deve essere incluso come elemento nell'array di livello superiore.
- lingua La lingua di input LCID che corrisponde al testo contenuto nel parametro alternative. Nel caso in cui il contenuto di alterna sia stato generato da un sistema di riconoscimento vocale o della scrittura a mano, questa è anche la proprietà di Linguaggi associata al riconoscitore usato.
- fLatticeContainsAutoSpacingInformation Un indicatore che indica se il testo contenuto nel parametro alternative è stato generato da un riconoscitore con la funzione di spaziatura automatica abilitata. Se la spaziatura automatica è stata abilitata, il flag deve essere impostato su TRUE. Se la spaziatura automatica è stata disabilitata, il flag deve essere impostato su FALSE. Nel caso in cui il contenuto delle opzioni alternative sia stato generato da un riconoscitore che non supporta la spaziatura automatica, o non sia stato generato affatto da un riconoscitore, il flag deve essere impostato su FALSE.
Il modello di programmabilità del pannello di input è in grado di inserire il testo nel documento o nell'applicazione dalla posizione del cursore di sistema.
Entrambi i metodi restituiscono S_OK se l'inserimento ha esito positivo. Restituiscono E_NOINTERFACE se l'applicazione non è basata su Servizi di testo o non è abilitata, e E_INVALIDARG se alternates sono formattati in modo non corretto o inaccessibili. Possono anche restituire E_OUTOFMEMORY se non è disponibile memoria sufficiente nel sistema o E_FAIL dopo un errore irreversibile, ad esempio text Services Framework non abilitato.
Conclusione
L'abilitazione della correzione in documenti del pannello di input per il testo non immesso tramite il pannello di input è un modo economico e semplice per un'applicazione basata su Servizi di testo o abilitata per integrare un metodo di input penna o input personalizzato con potenti funzionalità di correzione basata su penna. In Windows Vista tutte le applicazioni Rich Edit e Trident sono abilitate per Servizi di testo. Anche se le superfici di input penna integrate sono un'ottima opzione per aggiungere un'esperienza utente personalizzata a un PC Tablet in un'applicazione, supportano solo parzialmente l'inserimento del testo se non includono funzionalità di correzione. La correzione nel documento fornisce agli utenti l'altra metà della storia aggiungendo la possibilità di scambiare una selezione per un riconoscimento alternativo o di riscrivere parte o tutta la selezione.
Argomenti correlati