| 网站首页 | VB.Net实例分析 | .Net技术文摘 | 下载中心 | VB.Net书籍笔记 | .Net源码 | VBS脚本与组件调用 | Windows2008技术文摘 | 给我们留言 | 
最新公告:

  没有公告

您现在的位置: 乐博网 >> VB.Net实例分析 >> 外接设备编程 >> 实例分析正文
最新推荐 更多内容
设置文本识别的内置识别器(VB2010实例)
设置文本识别的内置识别器(VB2010实例)
作者:Akyao    来源:乐博网收集     更新时间:2011-4-21

本文演示可以用于设置文本识别的内置识别器,来自乐博网。

如果你想下载本文的源代码RAR压缩集合包  请访问
VB2010源代码集合包(芋头糕)    http://www.lob.cn/code/utility/2795.shtml
特别感谢网友 芋头糕 将此资源提供乐博网分享,欢迎加入 40797788 的.Net超级qq群交流。

可以用于设置文本识别的内置识别器的实例代码如下:

Option Strict On

Imports Microsoft.Ink

Public Class Form1

    'Ink collecting object
    Private inkOverlay As InkOverlay

    'Active recognizer
    Friend activeRecognizer As Recognizer

    Sub New()
        InitializeComponent()

        'Gather ink on the panel
        inkOverlay = New InkOverlay(Panel1)
        'Activate ink-gathering
        inkOverlay.Enabled = True

        'Get all the installed recognizers
        Dim recognizers As New Recognizers()

        'Get the default recognizer
        Dim defaultReco As Recognizer = recognizers.GetDefaultRecognizer()
        activeRecognizer = defaultReco
        AddRecognizerToMenu(defaultReco, True)

        'Recognizer.Equals() and Recognizer.GetHashCode() don't generate comparable values
        'so have to make our own
        Dim defaultRecoId As String = defaultReco.Vendor + defaultReco.Name

        'Iterate over all recognizers, including the default one
        Dim recognizer As Recognizer
        For Each recognizer In recognizers
            Dim recognizerId As String = recognizer.Vendor + recognizer.Name
            'Don't add the default recognizer again
            If recognizerId <> defaultRecoId Then
                AddRecognizerToMenu(recognizer, False)
            End If
        Next
    End Sub

    Private Sub AddRecognizerToMenu(ByVal recognizer As Recognizer, ByVal selected As Boolean)
        'Create a new menu item for the recognizer
        Dim recognizerSelector As ToolStripMenuItem = New ToolStripMenuItem(recognizer.Name)

        'Initialize whether it's checked or not and behavior
        recognizerSelector.CheckOnClick = True
        recognizerSelector.Checked = selected

        'Handle the click event
        Dim selectRecognizer As New Recognizerselector(Me, recognizerSelector, recognizer)
        AddHandler recognizerSelector.Click, AddressOf selectRecognizer.SelectRecognizer

        'Add new menu item to menu
        RecognizersToolStripMenuItem.DropDownItems.Add(recognizerSelector)
    End Sub

    Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
        Application.Exit()
    End Sub

    Private NotInheritable Class RecognizerSelector
        ' Methods
        Public Sub New(ByVal form1 As Form1, ByVal recognizerSelector As ToolStripMenuItem, ByVal recognizer As Recognizer)
            Me.form1 = form1
            Me.recognizer = recognizer
            Me.recognizerSelector = recognizerSelector
        End Sub

        Public Sub SelectRecognizer(ByVal sender As Object, ByVal e As EventArgs)
            form1.activeRecognizer = Me.recognizer
            Dim item1 As ToolStripMenuItem
            For Each item1 In form1.RecognizersToolStripMenuItem.DropDownItems
                item1.Checked = False
            Next
            Me.recognizerSelector.Checked = True
        End Sub

        ' Fields
        Public form1 As Form1
        Public recognizer As Recognizer
        Public recognizerSelector As ToolStripMenuItem
    End Class

    Private Sub ClearToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearToolStripMenuItem.Click
        'Clear the last-recognized text (if any)
        ListBox1.Items.Clear()

        'Clear the ink
        inkOverlay.Ink.DeleteStrokes()

        'Redraw the screen
        Panel1.Invalidate()
    End Sub

    Private Sub RecognizeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RecognizeToolStripMenuItem.Click
        'Clear previously recognized text (if any)
        ListBox1.Items.Clear()  

        'Create a recognition context    '更多.net源代码 来自乐博网lob.cn
        Dim context As RecognizerContext = activeRecognizer.CreateRecognizerContext()

        'Recognize all the ink
        context.Strokes = inkOverlay.Ink.Strokes

        'That's it for the ink we'll recognize this time
        context.EndInkInput()

        'Recognizer will throw an exception if called with no Strokes
        If context.Strokes Is Nothing Or context.Strokes.Count = 0 Then
            Return
        End If

        'Note the status is ByRef
        Dim status As RecognitionStatus
        Dim result As RecognitionResult = context.Recognize(status)

        'If no error
        If status = RecognitionStatus.NoError Then
            'Most likely string
            Dim topString As String = result.TopString
            ListBox1.Items.Add(topString)

            'Sometimes, you'll want to see alternates (will include TopString as first result)
            Dim alternate As RecognitionAlternate
            For Each alternate In result.GetAlternatesFromSelection()
                Dim alternateString As String = alternate.ToString()
                ListBox1.Items.Add(alternateString)
            Next
        End If

        'Probably enough to require scrolling, so enable listBox1
        ListBox1.Enabled = True
    End Sub
End Class

 


 

  • 上一篇:

  • 下一篇: 没有了
  • 【字体: 】【打印此文】【关闭窗口
      相关文章:(只显示最新16条)
    管理计算机电源状态的类(VB2010实例)
    Tablet PC 上可用的文本识别选项(VB2010实例)
    Tablet PC 2005 中对笔势的系统识别(VB2010实例)
    自定义数据控件(VB2010实例)
    Tablet PC 2005 的区分上下文功能(VB2010实例)
    响应数字化仪触笔背面的橡皮擦(VB2010实例)
    WMI编程实例(VB2010实例)
    系统服务管理实例(VB2010实例)
    进程管理(VB2010实例)
    显示进程组成模块(VB2010实例)
    任务管理器编程(VB2010实例)
    性能计数器编程(VB2010实例)
    消息队列MSMQListener(VB2010实例)
    消息队列MSMQClient(VB2010实例)
    写入事件日志(VB2010实例)
    读取事件日志(VB2010实例)

    | 设为首页 | 加入收藏 | 联系站长 | | 友情链接 | 版权申明 |
    乐博网欢迎各种媒体转载我们的原创作品[转载请注明出处];我们鼓励更多VB.Net开发者一起加入研究与探讨;如发现文章访问错误、内容错误或版权疑问、内容有违相关法律(如涉及政治、色情、反动或散布虚假有害信息)等情况,请及时向我们举报,我们将及时纠正!
    联系邮箱:Shiny#vip.qq.com (#替换为@) QQ交流群: 40797788 [闽ICP备05014267号]