インク認識サンプル
このアプリケーションは、手書き認識アプリケーションを構築する方法を示しています。Windows Vista SDK には、C# および Visual Basic .NET でもこのサンプルのバージョンが用意されています。 このトピックでは、Visual Basic .NET サンプルを参照しますが、概念はバージョン間で同じです。
タブレット PC インターフェイスにアクセスする
まず、SDK と共にインストールされている Tablet PC API を参照します。
' The Ink namespace, which contains the Tablet PC Platform API
Imports Microsoft.Ink
InkCollector を初期化する
このサンプルでは、InkCollector myInkCollector をグループ ボックス ウィンドウに関連付け、InkCollector を有効にするためのコードをフォームの Load イベント ハンドラーに追加します。
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
ストロークを認識する
Button オブジェクトの Click イベント ハンドラーは、Recognizers コレクションの Count プロパティを調べることで、ユーザーに少なくとも 1 つの認識エンジンがインストールされていることを確認します。
テキスト ボックスの SelectedText プロパティは、Strokes コレクションの ToString メソッドを使用して、ストロークに最適に設定されます。 ストロークが認識されると、削除されます。 最後に、コードは描画領域を強制的に再描画し、さらにインクを使用するためにクリアします。
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
フォームを閉じる
フォームの Dispose メソッドは 、InkCollector オブジェクトを破棄します。