Compartir a través de


Ejemplo de reconocimiento de entrada de lápiz

Esta aplicación muestra cómo puede compilar una aplicación de reconocimiento de escritura a mano. El SDK de Windows Vista también proporciona versiones de este ejemplo en C# y Visual Basic .NET. En este tema se hace referencia al ejemplo de .NET de Visual Basic, pero los conceptos son los mismos entre versiones.

Acceder a las interfaces de pc tablet

En primer lugar, haga referencia a la API de pc tablet, que se instala con el SDK.

' The Ink namespace, which contains the Tablet PC Platform API
Imports Microsoft.Ink

Inicialización de InkCollector

El ejemplo agrega código al controlador de eventos Load del formulario que sirve para asociar InkCollector, myInkCollector, con la ventana del cuadro de grupo y habilitar 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

Reconocimiento de los trazos

El controlador de eventos Click del objeto Button comprueba que el usuario tiene al menos un reconocedor instalado examinando la propiedad Count de la colección Recognizers.

La propiedad SelectedText del cuadro de texto se establece en la mejor coincidencia para los trazos mediante el método ToString de la colección Strokes . Una vez reconocidos los trazos, se eliminan. Por último, el código fuerza la reintentos del área de dibujo, despejarla para un uso posterior de la tinta.

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

Cerrar el formulario

El método Dispose del formulario elimina el objeto InkCollector .