Exemple de reconnaissance manuscrite
Cette application montre comment vous pouvez créer une application de reconnaissance de l’écriture manuscrite. le kit de développement logiciel (SDK) Windows Vista fournit également des versions de cet exemple en C # et Visual Basic .net. cette rubrique fait référence à l’exemple .net Visual Basic, mais les concepts sont les mêmes entre les versions.
Accéder aux interfaces Tablet PC
Tout d’abord, référencez l’API Tablet PC qui est installée avec le kit de développement logiciel (SDK).
' The Ink namespace, which contains the Tablet PC Platform API
Imports Microsoft.Ink
Initialiser le InkCollector
L’exemple ajoute du code au gestionnaire d’événements Load du formulaire qui sert à associer le InkCollector, myInkCollector, à la fenêtre de la zone de groupe et à activer le InkCollector.
Private Sub InkRecognition_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Create the recognizers collection
myRecognizers = New Recognizers()
' Create an ink collector that uses the group box handle
myInkCollector = New InkCollector(gbInkArea.Handle)
' Turn the ink collector on
myInkCollector.Enabled = True
End Sub
Reconnaître les traits
Le gestionnaire d’événements Click de l’objet Button vérifie que l’utilisateur dispose d’au moins un module de reconnaissance, en examinant la propriété Count de la collection Recognizers .
La propriété SelectedText de la zone de texte est définie sur la meilleure correspondance pour les traits à l’aide de la méthode ToString sur la collection de traits . Une fois les traits reconnus, ils sont supprimés. Enfin, le code force la redessin de la zone de dessin, en l’effaçant pour une utilisation manuscrite plus poussée.
Private Sub btnRecognize_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRecognize.Click
' Check to ensure that the user has at least one recognizer installed
' Note that this is a preventive check - otherwise, an exception
' occurs during recognition
If 0 = myRecognizers.Count Then
MessageBox.Show("There are no handwriting recognizers installed. You need to have at least one in order to run this sample.")
Else
' ...
txtResults.SelectedText = myInkCollector.Ink.Strokes.ToString
' If the mouse is pressed, do not perform the recognition -
' this prevents deleting a stroke that is still being drawn
If Not myInkCollector.CollectingInk Then
' Delete the ink from the ink collector
myInkCollector.Ink.DeleteStrokes(myInkCollector.Ink.Strokes)
' Force the Frame to redraw (so the deleted ink goes away)
gbInkArea.Refresh()
End If
End If
End Sub
Fermeture du formulaire
La méthode dispose du formulaire supprime l’objet InkCollector .