在控件中操作墨水的方法

文档序号:6598930阅读:280来源:国知局
专利名称:在控件中操作墨水的方法
技术领域
本发明一般涉及软件应用程序和/或数据结构之间的接口。尤其,本发明的尤其 涉及用电子墨水交换信息的接口和/或允许输入和/或编辑电子墨水的接口。
背景技术
典型的计算机系统,尤其是使用诸如微软视窗之类的图形用户接口(GUI)系统的 计算机系统,对于接收从一个或多个分立输入设备(诸如用于输入文本的键盘、诸如用一 个或多个按钮的鼠标来驱动用户接口的指针设备)的用户输入是最佳的。普遍存在的键盘 和鼠标接口提供文档、电子数据表、数据库字段、附图、照片等等的快速创建和修改。然而, 与非-计算机(即,标准的)式的笔和纸相比,键盘和鼠标接口提供的灵活性还有相当的差 距。用户用标准的笔和纸编辑文档,在页边距内写附注,以及画图画和其它形状等等。在某 些情况中,因为可不受键盘和鼠标接口的限制而自由地作出附注,用户宁可使用笔在文档 上作标记而不是在屏幕上审查文档。某些计算机系统允许用户在屏幕上画图。例如,微软READER应用程序允许把电子 墨水(这里也称之为“墨水”)添加到文档中。系统存储墨水,并当请求时把它提供给用户。 其它应用程序(例如,与Palm 3. x和4. x和PocketPC操作系统相关联的本技术领域中众 知的画图应用程序)允许捕获和存储图画。还有,可以基于输入笔的输入产品诸如Wacom 图形输入产品,使用诸如CoralDraw之类的各种画图应用程序和诸如Photoshop之类的照 相和编辑应用程序。这些附图包括与用于构成附图的墨水笔划相关联的其它特性。例如, 可以与墨水一起存储的线宽度和颜色。这些系统的一个目标是再现应用于一片纸上的实际 墨水的外观和感觉。然而,在纸上的实际墨水可以具有未被坐标和连接线段的电子收集器 捕获的大量的信息。这些信息中的某一些可能包括所使用笔尖的厚度(如通过实际墨水的 宽度所看到)、或笔对于纸的角度、笔尖的形状、墨水的沉积速度以及等等。用电子墨水还发生其它问题。已经考虑了用它书写的一部分应用程序。这导致基 本上无能力向其它应用程序或环境提供电子墨水的丰厚度。当可以在多个应用程序之间 输入文本时(例如,通过使用剪贴板),墨水就不具备能够与墨水交互作用的这个能力。例 如,不能够创建图8的图象,通过剪贴板把所创建的图象复制和粘贴到文档中,然后使墨水 变粗。一个困难是图象在应用程序之间的不可移动性。

发明内容
通常,软件开发者熟悉传统的Win32 RichEdit控件,它允许用户输入和编辑格式 化的文本。本发明通常涉及扩展RichEdit控件的功能而进一步提供接收电子墨水手写的 能力。手写可在一时间延迟后自动地,也可在以后根据请求,被进一步识别和转换成文本。在墨水没被转换成文本时,原始的电子墨水可以被存储,诸如存储在对象型数据结构中。因 此,本发明的目的是使用电子墨水对现有的和将来的应用程序提供支持。本发明另一目的是提供一种灵活的和有效的接口,用于与各种特性交互作用,引 用方法和/或接收与电子墨水有关的事件,从而解决传统设备和系统所发现的一个或多个 问题。本发明的再一个目的涉及改进所存储墨水的内容。其它目的涉及修改所存储的墨水。 再有的目的涉及提供墨水和文本间的可操作性。结合下列较佳实施例的详细说明,将会更好地理解本发明的这些和其它特性。


当和只是作为例子而不是作为对所申请发明专利限制的附图一起阅读时,会更好 地理解上述发明概要和下列较佳实施例的详细说明。图1是可以用于实施本发明的作为例子的通用数字计算环境的功能性方框图。图2是根据本发明可以使用的示例图形输入板计算机和输入笔的平面图。图3-6是根据本发明的图形用户接口的各种示例屏幕照相。图7是根据本发明可使用的各种示例手势。图8是根据本发明表示一系统环境的功能性方框图。图9是根据本发明的示例应用程序编程接口的功能性方框图。
具体实施例方式下面描述捕获、识别、与之接口、编辑或操作、和/或显示电子墨水的一种方法。一般计算平台图1是可以用来实施本发明的传统通用数字计算环境的一个例子的功能性方框 图。在图1中,计算机100包括处理单元110、系统存储器120以及把包括系统存储器之类 的各种系统部件耦合到处理单元110的系统总线130。系统总线130可以是数种总线结 构类型中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线结构 中的任何一种的本地总线。系统存储器120包括只读存储器(ROM) 140和随机存取存储器 (RAM)150。在ROM 140中存储基本输入/输出系统160 (BIOS),它包含在计算机100中的单元 之间帮助传递信息的基本例行程序,诸如在启动期间。计算机100还包括在硬盘(未示出) 进行读出和写入硬盘驱动器170 ;,在可拆卸磁盘190进行读出或写入的磁盘驱动器180 ; 以及在诸如CD ROM或其它光媒体之类的可拆卸光盘192中进行读出和写入的光盘驱动器 191。分别通过硬盘驱动器接口 192、磁盘驱动器接口 193以及光盘驱动器接口 194把硬盘 驱动器170、磁盘驱动器180和光盘驱动器191连接到系统总线130。驱动器和与它们相关 联的计算机可读出媒体提供计算机可读出指令、数据结构、程序模块以及用于个人计算机 100的其它数据的非易失性存储。熟悉本技术领域的人员可以理解,在示例操作环境中,也 可以使用可以存储计算机可存取数据的其它类型的计算机可读出媒体,诸如盒式磁带、快 速存储卡、数字视频盘、Bernoulli数据盒、随机存取存储器(RAM)、只读存储器(ROM)等。可以把许多程序模块,包括操作系统195、一个或多个应用程序196、其它程序模 块197以及程序数据198,存储在硬盘驱动器170、磁盘190、光盘192、R0M140或RAM 150中。用户可以通过诸如键盘101和指示设备102之类的输入设备,把命令和信息输入计算 机100。其它输入设备(未示出)可以包括话筒、摇杆、游戏小键盘、卫星碟形天线、扫描器 等。通常通过耦合到系统总线的串行端口接口 106把这些和其它输入设备连接到处理单元 110,但是可以通过其它接口连接,诸如并行接口、游戏接口或通用串行总线(USB)。再进一 步,可以通过合适的接口(未示出)把这些设备直接耦合到系统总线130。还可通过视频适 配器108之类的接口,把监视器170或其它类型的显示设备连接到系统总线130。除了监 视器之外,个人计算机一般还包括其它外围输出设备(未示出),诸如扬声器和打印机。在 一个较佳实施例中,提供笔数字化器165和附带的笔或输入笔166,以便数字化地捕获徒手 输入。虽然示出的笔数字化器165和处理单元110之间是直接连接的,实际上,如本领域中 众知,可以通过串行端口、并行端口或其它接口和总线把笔数字化器165耦合到处理单元 110。此外,虽然示出笔数字化器165是和监视器107分开的,但是最好是使数字化器165 的可使用输入区和监视器107的显示区共同延伸。再进一步,可以把数字化器165集成到 监视器107中,或可以作为分立的设备相重叠而存在,或附加到监视器107中。计算机100可以在网络化环境中操作,所述网络化环境使用到一台或多台远程算 机(诸如远程计算机109)的逻辑连接。远程计算机109可以是服务器、路由器、网络PC、同 等设备或其它公共网络节点,一般包括上面介绍的与计算机100有关的许多单元或全部单 元,虽然在图1中只有示出一个存储器存储设备111。在图1中描绘的逻辑连接包括局域网 (LAN) 112和广域网(WAN) 113。这种网络环境在办公室、全企业的计算机网、内部网、互联网 中是常见的。当在局域网网络环境中使用时,通过网络接口或适配器114把计算机100连接到 局域网112。当在广域网网络环境中使用时,个人计算机一般包括调制解调器115或用于在 广域网113上建立通信的其它手段,诸如互联网。通过串行端口接口 106把可以是内接的 或外接的调制解调器115连接到系统总线130。在网络化的环境中,可以把与个人计算机 100或其部分有关的程序模块,存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,可以使用在计算机之间建立通信链路的 其它技术。假定存在诸如TCP/IP,以太网、FTP、HTTP等各种众所周知的协议中的任何一种, 并且系统可以在用户一服务器配置中操作以允许用户从基于网的服务器取得网页。可以使 用各种传统的网浏览器中的任何一种来显示和操作网页上的数据。图2示出可以根据本发明而使用的基于输入笔的计算机处理系统(又称为图形输 入板PC(个人计算机))201。在图1中的系统的任何或所有特征、子系统以及功能都可以包 括在图2的计算机中。图形输入板PC 201包括一个大显示表面202,例如,数字化平面显示 器,最好是液晶显示器0XD)屏幕,在其上显示多个窗口 203。可以使用的其它显示技术可 以包括,但是不限于,0LED显示器、等离子显示器等。用户可以使用输入笔204的笔尖(这 里还把笔尖称为“光标”)在数字化显示区上选择、突出显示和写入。数字化显示板的合适 的例子包括电磁笔数字化器,诸如Mutoh和Wacom笔数字化器。还可以使用其它类型的笔 数字化器,例如,光数字化器。图形输入板PC 201解译使用输入笔204作出的标记,以便操 作数据、输入文本以及执行传统计算机应用程序任务,诸如电子数据表、处理程序等。可以使输入笔配备按钮或其它特征以扩大它的选择能力。在一个实施例中,可以 实施输入笔作为“铅笔”或“钢笔”,其中,一端构成写入部分,另一端构成“擦除”端,当“擦除”端在显示器上移动时,指示出要擦除的显示部分。可以使用诸如鼠标、跟踪球等其它类 型的输入设备。此外,在触摸_敏感或接近_敏感的显示器上,用户可以使用自己的手指来 选择或指示所显示图象部分。因此,这里所使用的“用户输入设备”具有宽广的定义,并包 括许多已知输入设备的变型。电子墨水和墨水对象的概念这里所使用的墨水称为电子墨水。电子墨水被设计成一个序列的笔或一组笔划, 其中,每一笔划包括一序列的点或一组点。通过所捕获的时间和/或通过在页面上笔划和/ 或点出现的地方可以使笔划和/或点的序列排序。笔划组可以包括笔划和/或点的序列、 和/或未排序的笔划和/或点。点可以使用本技术领域中已知的多种技术来表示,包括笛 卡尔坐标(X,Y)、极坐标(r,0)以及其它技术。另一方面,可以用一个点和下一个点的方 向上的矢量来表示笔划。打算使笔划包括与墨水有关的任何点或分段的显示,不考虑点下 面的显示和/或点与什么连接。一般在数字化器(诸如显示表面202的数字化器)处开始 墨水收集。用户可以把输入笔放在数字化器上,并开始写入或画图。那时,可以产生新墨水 包(即,与墨水有关的数据包)。用户还可以在与数字化器足够近的空中移动输入笔以致 使数字化器检测到。当发生这种情况时,根据所检测的输入笔在空中的运动,可以产生数据 包(这里称为“空中包“)。包不但可以包括位置信息,还可以包括输入笔压力和/或角度 fn息o为了存储墨水,可以创建表示输入笔204在显示表面202和/或其它输入上划出 的墨水原始笔划的墨水对象。可以从显示表面202上任何地方或只从其上确定部分(诸如 特定的窗口)收集墨水的收集笔划。墨水对象实质上是墨水数据的容器。墨水如何存储在 墨水对象中的特定格式对于本发明是不重要的。然而,最好把原始划出的笔划存储在墨水 对象中。可以定义墨水对象的两种示例类型。可以实施t墨水(tlnk)对象(“t”的意思 是“text(文本)”)作为OLE对象,它表示期望形成字母或字的墨水。t墨水(tlnk)对象 允许通过诸如文本识别器把手写墨水转换成文本。t墨水(tlnk)对象是指涉及墨水并具 有原文上下文的墨水对象。原文墨水的颜色和/或字体的字号以及原文墨水是否应该下划 线、加粗、倾斜和/或等等可以编程设置,并且可以基于围绕t墨水(tlnk)对象的文本的属 性。换言之,可以把在t墨水(tlnk)对象指定插入点处的环境特性施加于t墨水(tlnk) 对象。在一个实施例中,t墨水(tlnk)对象只包括用于提交给文本识别器的一个单字,致 使一句句子可以包括多个t墨水(tlnk)对象。另一方面,还可以定义s墨水(sink)对象 (“s”的意思是“草图(sketch)”),表示不期望形成字的墨水。s墨水(sink)对象也可以 是OLE对象。因此,可以把s墨水(sink)对象解译为画图或任何其它非原文上下文。s墨 水(sink)对象对于显示多个字也是有用的。墨水兼容的应用程序(和/或用户)可以对 某些墨水对象作出t墨水(tlnk)对象的标记,并对其它墨水对象作出s墨水(sink)对象 的标记。为了说明的目的,这里把两种类型的墨水描述为“tlnk(t墨水)”和“sink(s墨 水)”。然而可以理解,可以使用其它名称来表示可以采用的各种类型的墨水对象。还有,可 以使用另外类型的对象来存储任何要求格式的电子墨水。可以定义一个对象(这里称为“InkCollector(墨水收集器)”对象)以及用 来从墨水输入设备捕获墨水和/或向应用程序提供墨水。在某种意义上,墨水收集器(InkCollector)对象的作用是水龙头,它通过收集作为一划或多划墨水笔划的墨水并把墨 水存储在一个或多个相关联的墨水对象中,使墨水“倾注”到一个或多个不同的和/或有区 别的墨水对象中。墨水收集器(InkCollector)对象可以把它自己附加到已知的应用程序 窗口中。然后,它可以通过使用任何或所有可得到的图形输入设备(可以包括输入笔204 和/或鼠标)而提供在该窗口上的实时涂墨。为了使用墨水收集器(InkCollector)对 象,开发者可以创建它,分配哪个窗口把墨水收集进来,以及启动对象。在启动墨水收集器 (InkCollector)对象之后,可以进行设置,用多种墨水收集模式(在其中收集墨水笔划和/ 或手势)收集墨水。手势是输入笔204的一种运动或其它动作,解译成不是作为涂抹的墨 水,而是解译成为执行某种动作或功能的请求或命令。例如,为了选择墨水的目的,可以执 行特定的手势,而另外的手势可以是为了使墨水倾斜的目的。每一时刻当输入笔在数字化 器输入上时或与之接近时,墨水收集器(InkCollector)对象会收集笔划和/或手势。墨水编辑控件(InkEditControl)可以定义控件,这里称为“InkEdit (墨水编辑)”控件,它为捕获、识别和/或显示 墨水(例如,以文本的形式)提供一种方便的方法。InkEdit (墨水编辑)控件可以进一步 支持显示墨水为具有墨水_格式化和/或文本格式化能力的嵌入的对象(例如,作为嵌入 的t墨水(tlnk)对象,经过编程可通过墨水选择特性存取),诸如加粗、下划线、倾斜、上标、 下标、对齐等。这个对象的主要指定应用是允许输入墨水以及显示墨水或从墨水识别的文 本。这个控件可以进一步允许对墨水和/或所识别的文本进行编辑和/或格式化。众知的微软WINDOWS用户接口是编辑控件(即,RichEdit和RichTextBox)。 InkEdit (墨水编辑)控件的实施例向开发者提供了这些控件的扩充墨水版本,它们已经是 熟悉的和可能已经使用在它们的应用程序中,除了从键盘接收文本的现有能力之外,把各 种特征添加到现有的RichEdit控件,以接收来自输入笔、鼠标和/或其它指针的文本。例 如,在一个实施例中,InkEdit (墨水编辑)控件提供接收电子墨水手写和识别的能力,并把 该墨水转换成文本。InkEdit(墨水编辑)控件可以进一步提供接收手写作为用于以后识别 的墨水,致使手写本身是可编辑的能力。为了使用InkEdit(墨水编辑)控件,开发者需要简单地用具体例子说明 InkEdit (墨水编辑)控件。开发者和/或运行时用户可以进一步把一种或多种模式应用 于InkEdit (墨水编辑)控件各种特征。例如,一种模式可以指示是否应该插入墨水作为墨 水或文本。InkEdit(墨水编辑)控件可以管理许多内部世俗细节,用于建立图形输入上下 文、收听数字化器事件、收集笔划、把笔划馈送到识别器和/或把识别的结果(例如,它可以 是OLE嵌入对象)馈送到InkEdit (墨水编辑)控件进行显示以及以后的保留。在一个示例实施例中,可以在ActiveX和Win32中实施InkEdit (墨水编辑)控 件,并基于传统的微软Win32 Rich Edit控件。在另一个示例实施例中,可以在微软.NET 实施InkEdit (墨水编辑)控件,并基于Win32 InkEdit、RichEdit控件以及微软.NET RichTextBox控件。如所众知,微软RichEdit和Rich TextBox控件允许用户输入、编辑、 格式化、打印和存储文本,同时提供各种先进的格式化特征(诸如文本字体、颜色、格式化 等)。因此,除了现在可应用于墨水和传统文本的那些特征之外,本发明的InkEdit (墨水 编辑)控件可以具有许多由RichEdit和RichTextBox控件提供的特征。墨水可以成为它 自己中的以及它自己的第一级公民。在可能对文本进行加粗、下划线、倾斜等的情况中,InkEdit (墨水编辑)控件和它的编程接口可以允许象文本那么方便地操作墨水信息,同时 提供手写墨水的浓厚度。在某些实施例中,设计InkEdit (墨水编辑)控件使之在单行和多行文本输入和编 辑的形式情况中能很好地工作。InkEdit(墨水编辑)控件可以以原文手写的形式从一个用 户得到墨水输入。可以识别墨水输入,可以把打印的文本插入到位。除了用户正在用墨水 写时,用于InkEdit (墨水编辑)的缺省用户接口可以类似于传统Rich TextBox控件的缺 省用户接口。InkEdit(墨水编辑)控件可以显示原始的墨水或经识别的文本(或两者)。 可以把所显示的墨水定标到InkEdit(墨水编辑)控件的当前输入字体的字号,还可以与其 它文本串联式地显示,和/或可以改变它的位置、字号和/或颜色。另一方面,所显示的墨 水可以保持它的原始位置、字号和/或颜色。在一个示例实施例中,InkEdit (墨水编辑)控件的缺省特性是识别墨水并在短的 识别时间过去之后,把墨水转换成文本。这个识别时间可以是所要求的任何时间量,诸如约 2000毫秒,或在约100毫秒到约5000毫秒的范围内,或在约200毫秒到约2000毫秒的范围 内。在把识别时间设置成零时,可以禁止自动识别。因为InkEdit (墨水编辑)控件可以是 超级的RichEdit,所以它又可能在InkEdit (墨水编辑)控件中嵌入和显示墨水。可以把每 个墨水字插入控件作为墨水对象(例如,t墨水(tlnk)对象)。墨水对象可以包括墨水以 及与墨水相关联的一个或多个特性。当施加插入时,可以使墨水定标为当前字体的字号和其它环境特性,诸如倾斜或 加粗。如果用户选择编辑墨水对象的文本,则用户可以首先把墨水转换成文本。参考图3,InkEdit (墨水编辑)控件可以出现在与图形用户接口 301相关联的显 示器上。图形用户接口 301可以包括一个或多个显示空间302,用于接收汲取的墨水数据和 /或用于显示墨水和/或文本。图形用户接口可以接收数据,诸如在显示空间302中通过输 入笔204汲取的墨水数据,并且InkEdit (墨水编辑)可以把数据解译为墨水。InkEdit (墨 水编辑)控件可以进一步使墨水与通过应用程序开发者、用户、和/或自动地选择的诸如加 粗、下划线、倾斜上标、下标、对准、颜色、字号和/或等等之类的一个或多个特性相关联。如 在图3和4中所示,可以选择某些墨水和提供一种特性,例如,选择手写墨水词“conceived in liberty”,然后使之倾斜,并选择手写墨水词“created equal”(如图3中的虚线框所 示),然后增加它的字号。InkEdit (墨水编辑)控件可以进一步使墨水和与它相关联的特 性存储而作为墨水对象。因此,例如,可以把在显示空间302中的墨水存储在一个或多个墨 水对象中,而可以把词“conceived in liberty”存储在墨水对象中并与倾斜特性相关联。 InkEdit (墨水编辑)控件可以根据接收到的墨水数据使墨水得以显示。在一个实施例中, 例如,在接收到墨水的显示空间302中的相同位置处的显示空间302中显示墨水。墨水可以在显示空间302中保持显示(即,余晖),或可以识别墨水和/或把它转 换成文本。这种识别和转换可以立即发生,或在识别时间过去之后和/或根据命令(例如, 来自用户或来自应用程序。在墨水被识别和/或根据时间过去之后条件对墨水转换情况 下,这个识别时间可以是所要求的任何时间量,诸如约2000毫秒,或在约100毫秒到约5000 毫秒的范围内,或在约200毫秒到约2000毫秒的范围内。可以根据提起输入笔204使之离 开显示表面202的时间和/或根据笔划的结束来起动用于对识别时间进行计时的定时器, 并且在时间条件发生之前可以根据输入笔204回到显示表面202而取消计时。可以使定时器起动的其它事件包括输入笔204停止在显示表面202上的运动,来自输入笔204的手 势,诸如按钮和/或等等的其它输入。根据一个或多个模式开关的设置,决定可以或不可以 识别和/或显示墨水作为打印的文本。可以使一个或多个模式开关与一个或多个显示单元 (例如,显示单元303)相关联或可以使用户不知道(即,不显示在显示器上)。当开关是第 一种设置时,将不作为文本而识别或显示墨水。在某些实施例中,根据特定的命令仍可以 识别和/或显示墨水作为文本。当开关是第二种设置时,可以识别和/或显示墨水作为文 本(如这里所述,立即、在时间过去之后、或根据命令)。当显示墨水作为文本时,可以显示 从识别产生的文本来代替显示空间302中的墨水,致使被替代的墨水不再显示在显示空间 302中。图5示出已经被识别和转换成文本的显示空间302中的一部分墨水,而图6示出已 经被识别和转换成文本的显示空间302中的所有墨水。在这些示意图中,手写体不是原始 手写墨水,而印刷字体表示经识别的文本。可以通过单个识别器或诸如识别器的集合之类的多个识别器识别墨水。识别器可 以包括一个或多个手势识别器和/或文本识别器。可以进一步使待识别墨水的选择与特定 识别上下文相关联,所述特定识别上下文可以包括连同一个或多个工作识别特性的所谓的 “阶乘识别符(factoid) ”特性。可以认为阶乘识别符特性是提供给识别上下文的一组“线 索”,有助于使墨水上下文的识别更为正确。可以定义表示执行墨水识别能力、获取识别结 果和/或获取另外识别结果的识别器上下文对象。识别器上下文对象可以启动安装在系统 中的各种识别器执行墨水识别而适当地处理输入。可以执行包括后台识别和前台识别的至 少两类识别。在系统的后台处理中发生后台识别,并可能由于其它系统事件(由用户创建 或其它情况)而停止。相反,前台识别一般由用户启动,并且直到完成识别才停止。识别器 上下文对象可以接收待识别的墨水笔划,阶乘识别符特性可以定义输入墨水和所要求的识 别输出上的限制和/或其它参数。例如,可能设置的限制包括在识别期间要使用的语言、字 典和/或文法。当联系一种形式使用InkEdit (墨水编辑)控件时,对于该形式中的每个数 据输入字段可以设置不同的识别器上下文和/或阶乘识别符。各种数据输入字段对于某些 信息组可能是特定的,诸如具有数字、加号、虚线和括号的电话号码字段;只具有数字和虚 线的邮政编码字段;只具有大写字母的州的缩写;通用资源定位器(URL);以及等等。具有不同的识别器上下文和/或阶乘识别符的一个潜在的优点在于在某些实施 例中,可以调整发生识别的时间帧或什么触发识别。例如,对于在一种形式中的名称或说明 字段,有可能要求识别发生于每个字的结束处。然而,当使用州、街道/公寓号码或邮政编 码字段(例如)时,有可能要求识别发生于写入每个字符之后。在某些情况中,可以使用一 个字符到一个字符的识别,以提供比通过同时识别一个字符组可以得到的识别正确度更高 的识别正确度。InkEdit (墨水编辑)控件可以进一步提供手势支持,并可以根据手势产生事件。 参考图7,可以支持各种手势,诸如所示的示例手势701-704。例如,手势701可以表示托架 返回,手势702可以表示跳格命令,手势703可以表示空格字符,以及手势704可以表示退 格命令。可能有许多其它手势。InkEdit (墨水编辑)控件可以进一步提供校正用户接口,该接口允许用户按需要 观看另外的识别结果,使用屏幕上键盘和/或使用字符、字母和/或块文本识别器。还有, InkEdit (墨水编辑)控件可以允许使用相同的存储和装载机构象传统Windows Form RichTextbox控件那样来保持和装载它的数据。InkEdit API (墨水编辑应用程序接口 )InkEdit(墨水编辑)控件通过它的应用程序接口(API)向用户揭示许多功能。 根据主机应用程序,可以提供InkEdit API (墨水编辑应用程序接口)的各种风味。参考 图8,示例系统可以包括下列一个或多个ActiveX主机应用程序801、Win32主机应用程序 802、和/或通用语言运行时(CLR)主机应用程序803。此外,可以定义InkEdit ActiveX控 件804,并且可以与ActiveX主机应用程序801对接。可以进一步定义InkEdit Win32控 件805,并可以与Win32主机应用程序802对接。可以定义InkEdit WinForms控件806,并 可以与CLR主机应用程序803对接。最后,可以定义RichEdit 4.5 Win32控件807,它与 InkEdit (墨水编辑)控件804、805、806的各种风味中的任何一种或所有的相对接。InkEdit Win32控件805可以是其它两种控件(ActiveX控件804和WinForms控件806)的基础。在 一个实施例中,可以在Win32控件805中执行关键功能,诸如墨水的收集、具有识别器的迭 代和/或进行RichEdit Win32控件807的子分类。ActiveX InkEdit控件804可以使用通 过Win32 InkEdit控件805定义的C++分类,并可以基于该功能来创建ActiveX支持。可 以从Winforms Rich TextBox 808得到Winforms InkEdit控件806,并可以用这里讨论的 加墨水功能使它扩展。例如,首先通过在Rich TextBox 808提供的现有API单元的顶层上 装载代替RichEdit控件的Win32 InkEdit控件和按需要添加新方法、特性和/或事件,可 以扩展Winforms InkEdit控件806的功能。注意图8描绘在各种主机环境中控件之间关 系的示例组,但绝不是把控件之间的箭头作为限制。现在参考图9讨论InkEdit (墨水编辑)控件的API (应用程序接口)。在图9中, 通过一个方框来表示InkEdit (墨水编辑)控件901,并示出API的各种单元(或功能上分组 的单元),标有射出和/或进入表示InkEdit (墨水编辑)控件901的方框的箭头940-960。 一般,进入InkEdit (墨水编辑)控件901方框的箭头是指大部分修改InkEdit (墨水编 辑)控件901 (例如,通过改变它的特性中之一)和/或把信息提供给InkEdit (墨水编辑) 控件901的其它单元的API单元(或功能上分组的单元)。从InkEdit (墨水编辑)控件 901方框射出的箭头是指大部分表示标志或某些其它信息(通过InkEdit (墨水编辑)控 件901提供给它的环境)的API单元(或功能上分组的单元)。然而,箭头的方向是示意 性的,并不是作为限制,所以并不阻止用进入InkEdit (墨水编辑)控件901的箭头来表示 InkEdit (墨水编辑)控件901把信息提供给它的环境。同样,并不阻止从InkEdit (墨水编 辑)控件901射出的箭头修改或提供到InkEdit (墨水编辑)控件901的信息。图9进一 步示出InkEdit (墨水编辑)控件901的多个特性902-921。可以按InkEdit型控件的任何 风味(包括但是不限于,这里讨论的Win32、ActiveX和.NET风味)的任何组合或子组合来 利用下面讨论的API单元。在示例实施例中的InkEdit API (墨水编辑应用程序接口)具有按任何组合或子 组合的下列细目和结构(未示出)中的某一些或全部。例如,外形细目定义一个或多个值, 该值规定当显示时InkEdit (墨水编辑)控件901的外形是平的还是3-维的。边界格式细 目定义一个或多个值,该值规定InkEdit (墨水编辑)控件901是否具有边界。墨水-模式 细目定义一个或多个值,该值规定用于汲取墨水的收集模式设置——是否禁止墨水收集, 是否只收集墨水,或是否收集墨水和手势两者。插入模式细目定义一个或多个值,该值规定墨水是如何插入到InkEdit(墨水编辑)控件901中的,是作为墨水还是作为经识别的文本。InkEdit状态细目定义一个或多个值,该值规定InkEdit (墨水编辑)控件901是否空 闲、收集墨水或识别墨水。装载/存储细目定义一个或多个值,该值规定是否装载文件和/ 或作为Rich TextFormat(RTF)文件、文本文件或其它格式的文件而存储。鼠标-按钮细目 定义一个或多个值,该值规定按下或正在按下哪个鼠标按钮。注意,除非另行规定,这里对 于鼠标或鼠标按钮的所有参考都同样适用于输入笔或输入笔按钮。滚动条细目定义一个或 多个值,该值规定InkEdit (墨水编辑)控件是否具有水平和/或垂直滚动条。对准细目定 义一个或多个值,该值规定显示的段落是否对准InkEdit (墨水编辑)控件左或右页边线, 或在左和右页边线之间。笔划-信息结构包括有关特定笔划的信息,诸如使用哪个光标来 创建笔划以及把笔划存储在哪里(例如,作为特定笔划对象)。手势-信息结构包括有关特 定手势的信息,诸如使用哪个光标来创建手势、构成手势的笔划,和/或把手势存储在哪里 (例如,作为特定手势对象)。可以在InkEdit (墨水编辑)控件的Win32风味中使用特别 成功的笔划_信息和手势_信息结构。识别_结果结构包括有关文本识别结构的信息,并 且根据已准备的识别结果而发送。例如,通过分立的通知消息,可以提供有关这些本文讨论 的结构的某一些或全部使用在哪里的通知。 在示例实施例中的InkEdit API还具有按任何组合或子组合的、可以设置的以 及可以返回它们表示的信息的一个或多个下列特性。例如,外形特性902表示所显示的 InkEdit (墨水编辑)控件901是平的还是3-维的。后台-颜色特性903表示InkEdit (墨 水编辑)控件901的后台颜色。边界格式特性904表示InkEdit (墨水编辑)控件901是否 具有边界。创建-参数特性905表示当创建InkEdit (墨水编辑)控件901时创建参数。光 标特性906表示当鼠标指针在InkEdit (墨水编辑)控件901上时所显示的光标。画图-属 性特性907表示当画图和在InkEdit (墨水编辑)控件901中显示墨水(尚未被识别为文 本的墨水)时使用的缺省画图属性或当画墨水时施加到墨水的画图属性。滚动条禁止特性 908表示是否启动或禁止InkEdit (墨水编辑)控件901中的滚动条。拖拉-图标特性909 表示待显示作为拖拉-和-丢下操作中指针的图标。阶乘识别符910特性表示阶乘识别符 (这里进一步讨论),识别器用它来限制它对于识别结果的搜索。各种字体和文本特性911 表示InkEdit (墨水编辑)控件901所显示文本的字体以及当前选择文本的或在插入点处 的字体的名称和字号。其它字体和文本特性911表示当前选择的文本(或在插入点处)是 否为加粗、倾斜或下划线。再其它字体和文本特性911表示当前选择的文本(或在插入点 处)是否出现在基线上、作为上标、或作为下标,它们的对准,以及当前选择的文本或在插 入点处的颜色。各种墨水_模式特性912表示当在控件上画图时如何收集墨水以及是否禁 止收集墨水,是否只收集墨水,或是否收集墨水和手势两者。控件_锁定特性913表示是否 可以编辑InkEdit (墨水编辑)控件901的内容。各种鼠标特性914表示要显示的当前定制 鼠标图标以及当鼠标指针在InkEdit (墨水编辑)控件901的图形描绘上时所显示的鼠标 指针类型。多线特性915表示InkEdit (墨水编辑)控件901是否为多线控件。各种识别 器特性916表示使用哪个识别器来进行识别,以及在已经结束墨水笔划之后开始文本识别 的时间量。滚动条特性917表示在InkEdit (墨水编辑)控件901中显示的滚动条的类型。 墨水对象特性918表示在当前选择的文本中的墨水对象。设置这个墨水-对象特性可能导 致从输入的墨水对象清单识别的识别结果替代当前的选择。各种选择_文本特性919表示在InkEdit (墨水编辑)控件901中的当前选择的文本、所选择的字符数、所选择的经Rich Text Format(RTF)格式化的文本以及所选择文本的开始点。各种受控件文本特性920表 示在InkEdit (墨水编辑)控件901的文本方框中显示的当前文本以及在包括所有RTF格 式化代码的InkEdit (墨水编辑)控件901中的文本。状态特性921表示InkEdit (墨水编 辑)控件901是否空闲、收集墨水或识别墨水。在示例实施例中的InkEdit API还具有按任何组合或子组合的多个相关联的消 息、事件以及方法。由于InkEdit (墨水编辑)控件是超级的RichEdit控件,所以直接传递 每个RichEdit消息(在大多数情况中),具有如RichEdit中的相同效果。这也应用于事件 通知消息,它把已经发生特定事件通知InkEdit(墨水编辑)控件的父亲窗口。
例如,根据光标尖端(例如,输入笔204的尖端)物理地接触数字化表面(例如, 表面202)而发送光标-向下消息940。根据正完成的笔划发送笔划-完成消息941,并发 生笔划-完成事件。根据笔划-完成事件的发生而发生笔划-完成方法。根据正完成的手 势发送手势_完成消息942,这可以通过手势-完成事件来指示。InkEdit API还可以具有与识别有关的事件、方法和消息943。根据已经发生的识 别发送这种与识别有关的消息,或得到或设置所使用的识别器。其它与识别有关的消息,在 识别时间过去将导致发生识别之前,具体地强迫进行识别。与识别有关的事件,根据待识别 的应用_特定的手势以及根据一般的识别而发生。与识别有关的方法,根据正发生的识别 事件或规定应识别笔划的收集以及要返回该识别结果而发生。InkEdit API可以进一步具有根据经点击InkEdit (墨水编辑)控件901而发 生的事件944,根据按下或放开一个键而发生的事件945,根据在InkEdit (墨水编辑)控 件901上的鼠标指针和/或输入笔,以及按下、放开、或双击而发生的事件946以及根据在 InkEdit (墨水编辑)控件901上移动的鼠标指针而发生的事件947。InkEdit API可以进一步具有消息948,它用于根据在墨水编辑状态细目中定义 的值而获取InkEdit (墨水编辑)控件901的状态;方法949,它把特定类型的文件装载到 InkEdit (墨水编辑)控件901中或把InkEdit (墨水编辑)控件901的内容存储到特定类 型的文件中;以及用于处理Windows消息的方法950。InkEdit API可以进一步具有消息951,它根据在墨水模式细目中定义的值而获取 或设置InkEdit (墨水编辑)控件901的加墨水模式;以及消息952,它根据在墨水模式细 目中定义的值而获取或设置InkEdit (墨水编辑)控件901的墨水插入模。InkEdit API可以进一步具有消息953,它获取当前画图属性或设置要在 InkEdit (墨水编辑)控件901中使用的将来画图属性;以及消息954,它获取或设置 InkEdit (墨水编辑)控件901的识别时间。例如,识别时间可以按毫秒来测量。InkEdit API可以进一步具有与手势状态有关的消息和方法955。定义与手势状 态有关的消息获取或设置用于InkEdit (墨水编辑)控件901的手势状态。与手势状态有 关的方法使用手势状态的状态来限制可能被InkEdit (墨水编辑)控件901识别的手势的 设置。InkEdit API可以进一步具有消息956,它获取或设置InkEdit (墨水编辑)控件 901待使用的识别器;消息957,它获取或设置用于识别的阶乘识别符;消息958,它获取或 设置当前选择的墨水;消息959,它获取或设置所显示的鼠标图标;以及消息960,它获取或设置要显示的鼠标指针。
InkEdit API可以进一步具有构造者961,用于创建新InkEdit (墨水编辑)控件; 以及当为InkEdit (墨水编辑)控件901创建句柄时发生的方法962。在InkEdit (墨水编 辑)控件的.NET风味中,可以认为该方法是构造者。InkEdit API可以进一步具有根据在 控件变化中的文本选择而发生的选择改变的事件。这里所描述的实施本发明各方面的示例系统和方法只是作为例子而示出,可以理 解,本发明当然不限于这些实施例。特别是在上述学说的指导下,熟悉本技术领域的人员可 以进行各种修改。例如,可以单独利用上述实施例中的每个单元,或与其它实施例中的的单 元组合。虽然已经使用所附的权利要求书来定义本发明,但是示出这些权利要求在于打算 使本发明按任何组合或子组合来包括这里所描述的单元和步骤。因此,本发明可由任何数 目的变化组合来定义,它按各种组合或子组合而结合包括说明书、权利要求书和附图的规 格中的一个或多个单元。对于有关技术领域中的人员是显而易见的,在本规格的指导下,可 以利用本发明的各方面的独立的或与这里定义的一个或多个单元或步骤组合的另外组合 作为本发明的修改或变型或作为本发明的一部分。打算使这里包括的本发明的书面说明包 含所有这种修改和变型。还有,应该认识到,虽然这里提供对象和其它API单元的各种名 称,但是这种名称只是作为示意,可以使用任何名称而不偏离本发明的范围。
权利要求
一种在控件中操作墨水的方法,所述方法包括下列步骤接收数据;将数据解释为墨水;使墨水与至少一个特性相关联;以及将所述墨水与所述至少一个特性一起存储为墨水对象。
2.如权利要求1所述的方法,其特征在于,所述墨水包括多个笔划,所述方法进一步包 括将所述多个笔划存储为多个相应的笔划对象。
3.如权利要求2所述的方法,其特征在于,进一步包括响应于所述多个笔划中的一个 笔划的结束而产生事件的步骤。
4.如权利要求1所述的方法,其特征在于,所述至少一个特性包括加粗、倾斜和颜色中 的至少一个。
5.如权利要求1所述的方法,其特征在于,进一步包括接收命令以把所述至少一个特 性施加给所述墨水的步骤。
6.如权利要求1所述的方法,其特征在于,进一步包括显示所述墨水的步骤。
7.如权利要求6所述的方法,其特征在于,所述显示所述墨水的步骤包括根据所述至 少一个特性显示所述墨水。
8.—种在控件中操作墨水的方法,所述方法包括下列步骤 在显示区中接收数据;将所述数据解释为墨水; 在显示区中显示所述墨水; 将所述墨水识别为文本;以及 用所述文本替代所显示的墨水。
9.如权利要求8所述的方法,其特征在于,进一步包括使至少一个特性与所述文本相 关联,以及根据所述至少一个特性显示所述文本。
10.如权利要求9所述的方法,其特征在于,所述至少一个特性是加粗、倾斜和颜色中 的至少一个。
11.如权利要求9所述的方法,其特征在于,进行识别的步骤包括根据预定的识别上下 文识别所述墨水。
全文摘要
一种控件和它的相关联的编程接口,用于允许电子墨水的输入,电子墨水的编辑和其它操作和/或墨水的识别。可以把墨水存储在诸如墨水对象之类的数据结构中,允许稍后通过应用程序获取。在文本可能要加粗、下划线、倾斜等的情况下,所述控件和它的编程接口可以允许墨水信息象文本那样便于操作,同时提供手写墨水的浓厚度。
文档编号G06F3/048GK101799740SQ201010120410
公开日2010年8月11日 申请日期2003年5月14日 优先权日2002年5月14日
发明者A·J·戈尔德贝格, A·古纳里斯, K·费尔德曼, R·K·塞勒, R·L·钱伯斯, S·道奇, T·A·托塞特, T·A·杰林斯基 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1