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

  没有公告

您现在的位置: 乐博网 >> VB.Net实例分析 >> 外接设备编程 >> 实例分析正文
最新推荐 更多内容
Tablet PC 2005 中对笔势的系统识别(VB2010实例)
Tablet PC 2005 中对笔势的系统识别(VB2010实例)
作者:Akyao    来源:乐博网收集     更新时间:2011-4-18

本文演示 Windows XP Tablet PC Edition 2005 中对笔势的系统识别,来自乐博网。

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

Windows XP Tablet PC Edition 2005 中对笔势的系统识别的实例代码如下:

Imports Microsoft.Ink
Imports System.Text

Public Class Form1
    'Indices within checkedListBox1 of "special action" gestures
    Dim allGesturesIndex As Integer
    Dim noGesturesIndex As Integer

    'Flag for ItemCheck delegate: differentiate between user-initiated and program-initiated state change
    Dim programmaticRecursionSoReturn As Boolean = False

    'Ink-Gathering object
    Dim WithEvents myInkOverlay As InkOverlay

    Sub New()
        ' This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add all the types of ApplicationGesture to the checkedListBox for possible selection
        CheckedListBox1.Items.AddRange(System.Enum.GetNames(GetType(ApplicationGesture)))

        'Find the "AllGestures" and "NoGestures" items and store their indices for later special handling
        Dim i As Integer
        For i = 0 To CheckedListBox1.Items.Count - 1
            Dim gestureName As String = CheckedListBox1.Items(i).ToString()
            If (gestureName = "AllGestures") Then
                allGesturesIndex = i
            End If

            If (gestureName = "NoGesture") Then
                noGesturesIndex = i
            End If
        Next

        'Set up ink-collecting object  '更多.net源代码 来自乐博网lob.cn
        myInkOverlay = New InkOverlay(Panel1)
        myInkOverlay.Enabled = True
        'By default, CollectionMode is Ink. Final option is InkAndGesture.
        myInkOverlay.CollectionMode = CollectionMode.GestureOnly
        'Since we checked this in the listbox, set the status correctly
        myInkOverlay.SetGestureStatus(ApplicationGesture.AllGestures, True)

        'Initialize flag so initial call to ItemCheck delegate goes through
        programmaticRecursionSoReturn = False
    End Sub


    Private Sub CheckedListBox1_ItemCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck
        'If event raised programmatically, it's just a UI, not behavioral, change, so return immediately
        If (programmaticRecursionSoReturn = True) Then
            Return
        End If
        'Set recursion flag so programmatically raised events return quickly
        programmaticRecursionSoReturn = True

        'Are we turning on or turning off the gesture?
        Dim listening As Boolean
        If (e.NewValue = CheckState.Checked) Then
            listening = True
        Else
            listening = False

        End If

        'Which gesture?
        Dim gestureName As String = CheckedListBox1.Items(e.Index).ToString()
        Dim gesture As ApplicationGesture = CType(System.Enum.Parse(GetType(ApplicationGesture), gestureName), ApplicationGesture)

        'On the special values, clear all previously-selected gestures
        If (e.Index = allGesturesIndex Or e.Index = noGesturesIndex) Then
            Dim checkedIndex As Integer
            For Each checkedIndex In CheckedListBox1.CheckedIndices
                'This will raise ItemCheck event, but programmaticRecursionSoReturn flag is set
                CheckedListBox1.SetItemCheckState(checkedIndex, CheckState.Unchecked)
            Next
        Else
            'Clear the special values. (Note: Programmatically raised ItemCheck event)
            CheckedListBox1.SetItemCheckState(allGesturesIndex, CheckState.Unchecked)
            CheckedListBox1.SetItemCheckState(noGesturesIndex, CheckState.Unchecked)
        End If

        'Apply listening value to chosen gesture
        myInkOverlay.SetGestureStatus(gesture, listening)

        'Clear recursion flag
        programmaticRecursionSoReturn = False
    End Sub

    Sub InkOvrlayGestureHandler(ByVal sender As Object, ByVal e As InkCollectorGestureEventArgs) Handles myInkOverlay.Gesture
        'Gesture-handler: Note how often NoGesture has a higher confidence than sought-for gesture
        Dim sb As New StringBuilder()
        Dim candidate As Gesture
        For Each candidate In e.Gestures
            sb.AppendFormat("{0} : {1}" + System.Environment.NewLine, candidate.Id, candidate.Confidence)
        Next
        Label1.Text = sb.ToString()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Start with "AllGestures" checked
        CheckedListBox1.SetItemChecked(allGesturesIndex, True)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Clear ink
        myInkOverlay.Ink.DeleteStrokes()
        Panel1.Invalidate()
    End Sub
End Class

  • 上一篇:

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

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