Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este aplicativo demonstra como você pode criar um aplicativo de reconhecimento de manuscrito. O SDK do Windows Vista também fornece versões deste exemplo em C# e Visual Basic .NET. Este tópico refere-se ao exemplo do Visual Basic .NET, mas os conceitos são os mesmos entre versões.
Aceda às interfaces do Tablet PC
Primeiro, faça referência à API do Tablet PC, que é instalada com o SDK.
' The Ink namespace, which contains the Tablet PC Platform API
Imports Microsoft.Ink
Inicializar o InkCollector
O exemplo adiciona código ao manipulador de eventos Load do formulário que serve para associar o InkCollector, myInkCollector, à janela da caixa de grupo e ativar o 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
Reconhecer os AVCs
O manipulador do evento Click do objeto Button verifica se o utilizador tem pelo menos um reconhecedor instalado ao examinar a propriedade Count da coleção Recognizers.
A propriedade SelectedText da caixa de texto é configurada como a melhor correspondência para os traços, utilizando o método ToString na coleção Strokes. Depois que os traços forem reconhecidos, eles serão excluídos. Finalmente, o código força a repintura da área de desenho, limpando-a para uso posterior de 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
Fechando o formulário
O método Dispose do formulário elimina o objeto InkCollector.