專(zhuān)利名稱(chēng):電子墨水的輸入和編輯的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及軟件應(yīng)用程序和/或數(shù)據(jù)結(jié)構(gòu)之間的接口。尤其,本發(fā)明的尤其涉及用電子墨水交換信息的接口和/或允許輸入和/或編輯電子墨水的接口。
背景技術(shù):
典型的計(jì)算機(jī)系統(tǒng),尤其是使用諸如微軟視窗之類(lèi)的圖形用戶接口(GUI)系統(tǒng)的計(jì)算機(jī)系統(tǒng),對(duì)于接收從一個(gè)或多個(gè)分立輸入設(shè)備(諸如用于輸入文本的鍵盤(pán)、諸如用一個(gè)或多個(gè)按鈕的鼠標(biāo)來(lái)驅(qū)動(dòng)用戶接口的指針設(shè)備)的用戶輸入是最佳的。普遍存在的鍵盤(pán)和鼠標(biāo)接口提供文檔、電子數(shù)據(jù)表、數(shù)據(jù)庫(kù)字段、附圖、照片等等的快速創(chuàng)建和修改。然而,與非—計(jì)算機(jī)(即,標(biāo)準(zhǔn)的)式的筆和紙相比,鍵盤(pán)和鼠標(biāo)接口提供的靈活性還有相當(dāng)?shù)牟罹?。用戶用?biāo)準(zhǔn)的筆和紙編輯文檔,在頁(yè)邊距內(nèi)寫(xiě)附注,以及畫(huà)圖畫(huà)和其它形狀等等。在某些情況中,因?yàn)榭刹皇苕I盤(pán)和鼠標(biāo)接口的限制而自由地作出附注,用戶寧可使用筆在文檔上作標(biāo)記而不是在屏幕上審查文檔。
某些計(jì)算機(jī)系統(tǒng)允許用戶在屏幕上畫(huà)圖。例如,微軟READER應(yīng)用程序允許把電子墨水(這里也稱(chēng)之為“墨水”)添加到文檔中。系統(tǒng)存儲(chǔ)墨水,并當(dāng)請(qǐng)求時(shí)把它提供給用戶。其它應(yīng)用程序(例如,與Palm3.x和4.x和PocketPC操作系統(tǒng)相關(guān)聯(lián)的本技術(shù)領(lǐng)域中眾知的畫(huà)圖應(yīng)用程序)允許捕獲和存儲(chǔ)圖畫(huà)。還有,可以基于輸入筆的輸入產(chǎn)品諸如Wacom圖形輸入產(chǎn)品,使用諸如Coral Draw之類(lèi)的各種畫(huà)圖應(yīng)用程序和諸如Photoshop之類(lèi)的照相和編輯應(yīng)用程序。這些附圖包括與用于構(gòu)成附圖的墨水筆劃相關(guān)聯(lián)的其它特性。例如,可以與墨水一起存儲(chǔ)的線寬度和顏色。這些系統(tǒng)的一個(gè)目標(biāo)是再現(xiàn)應(yīng)用于一片紙上的實(shí)際墨水的外觀和感覺(jué)。然而,在紙上的實(shí)際墨水可以具有未被坐標(biāo)和連接線段的電子收集器捕獲的大量的信息。這些信息中的某一些可能包括所使用筆尖的厚度(如通過(guò)實(shí)際墨水的寬度所看到)、或筆對(duì)于紙的角度、筆尖的形狀、墨水的沉積速度以及等等。
用電子墨水還發(fā)生其它問(wèn)題。已經(jīng)考慮了用它書(shū)寫(xiě)的一部分應(yīng)用程序。這導(dǎo)致基本上無(wú)能力向其它應(yīng)用程序或環(huán)境提供電子墨水的豐厚度。當(dāng)可以在多個(gè)應(yīng)用程序之間輸入文本時(shí)(例如,通過(guò)使用剪貼板),墨水就不具備能夠與墨水交互作用的這個(gè)能力。例如,不能夠創(chuàng)建圖8的圖象,通過(guò)剪貼板把所創(chuàng)建的圖象復(fù)制和粘貼到文檔中,然后使墨水變粗。一個(gè)困難是圖象在應(yīng)用程序之間的不可移動(dòng)性。
發(fā)明概要通常,軟件開(kāi)發(fā)者熟悉傳統(tǒng)的Win32 RichEdit控制,它允許用戶輸入和編輯格式化的文本。本發(fā)明通常涉及擴(kuò)展RichEdit控制的功能而進(jìn)一步提供接收電子墨水手寫(xiě)的能力。手寫(xiě)可在一時(shí)間延遲后自動(dòng)地,也可在以后根據(jù)請(qǐng)求,被進(jìn)一步識(shí)別和轉(zhuǎn)換成文本。在墨水沒(méi)被轉(zhuǎn)換成文本時(shí),原始的電子墨水可以被存儲(chǔ),諸如存儲(chǔ)在目標(biāo)型數(shù)據(jù)結(jié)構(gòu)中。因此,本發(fā)明的目的是使用電子墨水對(duì)現(xiàn)有的和將來(lái)的應(yīng)用程序提供支持。
本發(fā)明另一目的是提供一種靈活的和有效的接口,用于與各種特性交互作用,引用方法和/或接收與電子墨水有關(guān)的事件,從而解決傳統(tǒng)設(shè)備和系統(tǒng)所發(fā)現(xiàn)的一個(gè)或多個(gè)問(wèn)題。本發(fā)明的再一個(gè)目的涉及改進(jìn)所存儲(chǔ)墨水的內(nèi)容。其它目的涉及修改所存儲(chǔ)的墨水。再有的目的涉及提供墨水和文本間的可操作性。
結(jié)合下列較佳實(shí)施例的詳細(xì)說(shuō)明,將會(huì)更好地理解本發(fā)明的這些和其它特性。
附圖簡(jiǎn)述當(dāng)和只是作為例子而不是作為對(duì)所申請(qǐng)發(fā)明專(zhuān)利限制的附圖一起閱讀時(shí),會(huì)更好地理解上述發(fā)明概要和下列較佳實(shí)施例的詳細(xì)說(shuō)明。
圖1是可以用于實(shí)施本發(fā)明的作為例子的通用數(shù)字計(jì)算環(huán)境的功能性方框圖。
圖2是根據(jù)本發(fā)明可以使用的示例圖形輸入板計(jì)算機(jī)和輸入筆的平面圖。
圖3-6是根據(jù)本發(fā)明的圖形用戶接口的各種示例屏幕照相。
圖7是根據(jù)本發(fā)明可使用的各種示例手勢(shì)。
圖8是根據(jù)本發(fā)明表示一系統(tǒng)環(huán)境的功能性方框圖。
圖9是根據(jù)本發(fā)明的示例應(yīng)用程序編程接口的功能性方框圖。
示例實(shí)施例的詳細(xì)說(shuō)明下面描述捕獲、識(shí)別、與之接口、編輯或操作、和/或顯示電子墨水的一種方法。
一般計(jì)算平臺(tái)圖1是可以用來(lái)實(shí)施本發(fā)明的傳統(tǒng)通用數(shù)字計(jì)算環(huán)境的一個(gè)例子的功能性方框圖。在圖1中,計(jì)算機(jī)100包括處理單元110、系統(tǒng)存儲(chǔ)器120以及把包括系統(tǒng)存儲(chǔ)器之類(lèi)的各種系統(tǒng)部件耦合到處理單元110的系統(tǒng)總線130。系統(tǒng)總線130可以是數(shù)種總線結(jié)構(gòu)類(lèi)型中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、以及使用多種總線結(jié)構(gòu)中的任何一種的本地總線。系統(tǒng)存儲(chǔ)器120包括只讀存儲(chǔ)器(ROM)140和隨機(jī)存取存儲(chǔ)器(RAM)150。
在ROM 140中存儲(chǔ)基本輸入/輸出系統(tǒng)160(BIOS),它包含在計(jì)算機(jī)100中的單元之間幫助傳遞信息的基本例行程序,諸如在啟動(dòng)期間。計(jì)算機(jī)100還包括在硬盤(pán)(未示出)進(jìn)行讀出和寫(xiě)入硬盤(pán)驅(qū)動(dòng)器170;,在可拆卸磁盤(pán)190進(jìn)行讀出或?qū)懭氲拇疟P(pán)驅(qū)動(dòng)器180;以及在諸如CD ROM或其它光媒體之類(lèi)的可拆卸光盤(pán)192中進(jìn)行讀出和寫(xiě)入的光盤(pán)驅(qū)動(dòng)器191。分別通過(guò)硬盤(pán)驅(qū)動(dòng)器接口192、磁盤(pán)驅(qū)動(dòng)器接口193以及光盤(pán)驅(qū)動(dòng)器接口194把硬盤(pán)驅(qū)動(dòng)器170、磁盤(pán)驅(qū)動(dòng)器180和光盤(pán)驅(qū)動(dòng)器191連接到系統(tǒng)總線130。驅(qū)動(dòng)器和與它們相關(guān)聯(lián)的計(jì)算機(jī)可讀出媒體提供計(jì)算機(jī)可讀出指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及用于個(gè)人計(jì)算機(jī)100的其它數(shù)據(jù)的非易失性存儲(chǔ)。熟悉本技術(shù)領(lǐng)域的人員可以理解,在示例操作環(huán)境中,也可以使用可以存儲(chǔ)計(jì)算機(jī)可存取數(shù)據(jù)的其它類(lèi)型的計(jì)算機(jī)可讀出媒體,諸如盒式磁帶、快速存儲(chǔ)卡、數(shù)字視頻盤(pán)、Bernoulli數(shù)據(jù)盒、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等。
可以把許多程序模塊,包括操作系統(tǒng)195、一個(gè)或多個(gè)應(yīng)用程序196、其它程序模塊197以及程序數(shù)據(jù)198,存儲(chǔ)在硬盤(pán)驅(qū)動(dòng)器170、磁盤(pán)190、光盤(pán)192、ROM 140或RAM 150中。用戶可以通過(guò)諸如鍵盤(pán)101和指示設(shè)備102之類(lèi)的輸入設(shè)備,把命令和信息輸入計(jì)算機(jī)100。其它輸入設(shè)備(未示出)可以包括話筒、搖桿、游戲小鍵盤(pán)、衛(wèi)星碟形天線、掃描器等。通常通過(guò)耦合到系統(tǒng)總線的串行端口接口106把這些和其它輸入設(shè)備連接到處理單元110,但是可以通過(guò)其它接口連接,諸如并行接口、游戲接口或通用串行總線(USB)。再進(jìn)一步,可以通過(guò)合適的接口(未示出)把這些設(shè)備直接耦合到系統(tǒng)總線130。還可通過(guò)視頻適配器108之類(lèi)的接口,把監(jiān)視器170或其它類(lèi)型的顯示設(shè)備連接到系統(tǒng)總線130。除了監(jiān)視器之外,個(gè)人計(jì)算機(jī)一般還包括其它外圍輸出設(shè)備(未示出),諸如揚(yáng)聲器和打印機(jī)。在一個(gè)較佳實(shí)施例中,提供筆數(shù)字化器165和附帶的筆或輸入筆166,以便數(shù)字化地捕獲徒手輸入。雖然示出的筆數(shù)字化器165和處理單元110之間是直接連接的,實(shí)際上,如本領(lǐng)域中眾知,可以通過(guò)串行端口、并行端口或其它接口和總線把筆數(shù)字化器165耦合到處理單元110。此外,雖然示出筆數(shù)字化器165是和監(jiān)視器107分開(kāi)的,但是最好是使數(shù)字化器165的可使用輸入?yún)^(qū)和監(jiān)視器107的顯示區(qū)共同延伸。再進(jìn)一步,可以把數(shù)字化器165集成到監(jiān)視器107中,或可以作為分立的設(shè)備相重疊而存在,或附加到監(jiān)視器107中。
計(jì)算機(jī)100可以在網(wǎng)絡(luò)化環(huán)境中操作,所述網(wǎng)絡(luò)化環(huán)境使用到一臺(tái)或多臺(tái)遠(yuǎn)程算機(jī)(諸如遠(yuǎn)程計(jì)算機(jī)109)的邏輯連接。遠(yuǎn)程計(jì)算機(jī)109可以是服務(wù)器、路由器、網(wǎng)絡(luò)PC、同等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),一般包括上面介紹的與計(jì)算機(jī)100有關(guān)的許多單元或全部單元,雖然在圖1中只有示出一個(gè)存儲(chǔ)器存儲(chǔ)設(shè)備111。在圖1中描繪的邏輯連接包括局域網(wǎng)(LAN)112和廣域網(wǎng)(WAN)113。這種網(wǎng)絡(luò)環(huán)境在辦公室、全企業(yè)的計(jì)算機(jī)網(wǎng)、內(nèi)部網(wǎng)、互聯(lián)網(wǎng)中是常見(jiàn)的。
當(dāng)在局域網(wǎng)網(wǎng)絡(luò)環(huán)境中使用時(shí),通過(guò)網(wǎng)絡(luò)接口或適配器114把計(jì)算機(jī)100連接到局域網(wǎng)112。當(dāng)在廣域網(wǎng)網(wǎng)絡(luò)環(huán)境中使用時(shí),個(gè)人計(jì)算機(jī)一般包括調(diào)制解調(diào)器115或用于在廣域網(wǎng)113上建立通信的其它手段,諸如互聯(lián)網(wǎng)。通過(guò)串行端口接口106把可以是內(nèi)接的或外接的調(diào)制解調(diào)器115連接到系統(tǒng)總線130。在網(wǎng)絡(luò)化的環(huán)境中,可以把與個(gè)人計(jì)算機(jī)100或其部分有關(guān)的程序模塊,存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
可以理解,所示的網(wǎng)絡(luò)連接是示例性的,可以使用在計(jì)算機(jī)之間建立通信鏈路的其它技術(shù)。假定存在諸如TCP/IP,以太網(wǎng)、FTP、HTTP等各種眾所周知的協(xié)議中的任何一種,并且系統(tǒng)可以在用戶—服務(wù)器配置中操作以允許用戶從基于網(wǎng)的服務(wù)器取得網(wǎng)頁(yè)。可以使用各種傳統(tǒng)的網(wǎng)瀏覽器中的任何一種來(lái)顯示和操作網(wǎng)頁(yè)上的數(shù)據(jù)。
圖2示出可以根據(jù)本發(fā)明而使用的基于輸入筆的計(jì)算機(jī)處理系統(tǒng)(又稱(chēng)為圖形輸入板PC(個(gè)人計(jì)算機(jī)))201。在圖1中的系統(tǒng)的任何或所有特征、子系統(tǒng)以及功能都可以包括在圖2的計(jì)算機(jī)中。圖形輸入板PC201包括一個(gè)大顯示表面202,例如,數(shù)字化平面顯示器,最好是液晶顯示器(LCD) 屏幕,在其上顯示多個(gè)窗口203??梢允褂玫钠渌@示技術(shù)可以包括,但是不限于,OLED顯示器、等離子顯示器等。用戶可以使用輸入筆204的筆尖(這里還把筆尖稱(chēng)為“光標(biāo)”)在數(shù)字化顯示區(qū)上選擇、突出顯示和寫(xiě)入。數(shù)字化顯示板的合適的例子包括電磁筆數(shù)字化器,諸如Mutoh和Wacom筆數(shù)字化器。還可以使用其它類(lèi)型的筆數(shù)字化器,例如,光數(shù)字化器。圖形輸入板PC 201解譯使用輸入筆204作出的標(biāo)記,以便操作數(shù)據(jù)、輸入文本以及執(zhí)行傳統(tǒng)計(jì)算機(jī)應(yīng)用程序任務(wù),諸如電子數(shù)據(jù)表、處理程序等。
可以使輸入筆配備按鈕或其它特征以擴(kuò)大它的選擇能力。在一個(gè)實(shí)施例中,可以實(shí)施輸入筆作為“鉛筆”或“鋼筆”,其中,一端構(gòu)成寫(xiě)入部分,另一端構(gòu)成“擦除”端,當(dāng)“擦除”端在顯示器上移動(dòng)時(shí),指示出要擦除的顯示部分??梢允褂弥T如鼠標(biāo)、跟蹤球等其它類(lèi)型的輸入設(shè)備。此外,在觸摸—敏感或接近—敏感的顯示器上,用戶可以使用自己的手指來(lái)選擇或指示所顯示圖象部分。因此,這里所使用的“用戶輸入設(shè)備”具有寬廣的定義,并包括許多已知輸入設(shè)備的變型。
電子墨水和墨水目標(biāo)的概念這里所使用的墨水稱(chēng)為電子墨水。電子墨水被設(shè)計(jì)成一個(gè)序列的筆或一組筆劃,其中,每一筆劃包括一序列的點(diǎn)或一組點(diǎn)。通過(guò)所捕獲的時(shí)間和/或通過(guò)在頁(yè)面上筆劃和/或點(diǎn)出現(xiàn)的地方可以使筆劃和/或點(diǎn)的序列排序。筆劃組可以包括筆劃和/或點(diǎn)的序列、和/或未排序的筆劃和/或點(diǎn)。點(diǎn)可以使用本技術(shù)領(lǐng)域中已知的多種技術(shù)來(lái)表示,包括笛卡爾坐標(biāo)(X,Y)、極坐標(biāo)(r,θ)以及其它技術(shù)。另一方面,可以用一個(gè)點(diǎn)和下一個(gè)點(diǎn)的方向上的矢量來(lái)表示筆劃。打算使筆劃包括與墨水有關(guān)的任何點(diǎn)或分段的顯示,不考慮點(diǎn)下面的顯示和/或點(diǎn)與什么連接。一般在數(shù)字化器(諸如顯示表面202的數(shù)字化器)處開(kāi)始墨水收集。用戶可以把輸入筆放在數(shù)字化器上,并開(kāi)始寫(xiě)入或畫(huà)圖。那時(shí),可以產(chǎn)生新墨水包(即,與墨水有關(guān)的數(shù)據(jù)包)。用戶還可以在與數(shù)字化器足夠近的空中移動(dòng)輸入筆以致使數(shù)字化器檢測(cè)到。當(dāng)發(fā)生這種情況時(shí),根據(jù)所檢測(cè)的輸入筆在空中的運(yùn)動(dòng),可以產(chǎn)生數(shù)據(jù)包(這里稱(chēng)為“空中包“)。包不但可以包括位置信息,還可以包括輸入筆壓力和/或角度信息。
為了存儲(chǔ)墨水,可以創(chuàng)建表示輸入筆204在顯示表面202和/或其它輸入上劃出的墨水原始筆劃的墨水目標(biāo)。可以從顯示表面202上任何地方或只從其上確定部分(諸如特定的窗口)收集墨水的收集筆劃。墨水目標(biāo)實(shí)質(zhì)上是墨水?dāng)?shù)據(jù)的容器。墨水如何存儲(chǔ)在墨水目標(biāo)中的特定格式對(duì)于本發(fā)明是不重要的。然而,最好把原始劃出的筆劃存儲(chǔ)在墨水目標(biāo)中。
可以定義墨水目標(biāo)的兩種示例類(lèi)型??梢詫?shí)施t墨水(tInk)目標(biāo)(“t”的意思是“text (文本)”)作為OLE目標(biāo),它表示期望形成字母或字的墨水。t墨水(tInk)目標(biāo)允許通過(guò)諸如文本識(shí)別器把手寫(xiě)墨水轉(zhuǎn)換成文本。t墨水(tInk)目標(biāo)是指涉及墨水并具有原文上下文的墨水目標(biāo)。原文墨水的顏色和/或字體的字號(hào)以及原文墨水是否應(yīng)該下劃線、加粗、傾斜和/或等等可以編程設(shè)置,并且可以基于圍繞t墨水(tInk)目標(biāo)的文本的屬性。換言之,可以把在t墨水(tInk)目標(biāo)指定插入點(diǎn)處的環(huán)境特性施加于t墨水(tInk)目標(biāo)。在一個(gè)實(shí)施例中,t墨水(tInk)目標(biāo)只包括用于提交給文本識(shí)別器的一個(gè)單字,致使一句句子可以包括多個(gè)t墨水(tInk)目標(biāo)。另一方面,還可以定義s墨水(sInk)目標(biāo)(“s”的意思是“草圖(sketch)”),表示不期望形成字的墨水。s墨水(sInk)目標(biāo)也可以是OLE目標(biāo)。因此,可以把s墨水(sInk)目標(biāo)解譯為畫(huà)圖或任何其它非原文上下文。s墨水(sInk)目標(biāo)對(duì)于顯示多個(gè)字也是有用的。墨水兼容的應(yīng)用程序(和/或用戶)可以對(duì)某些墨水目標(biāo)作出t墨水(tInk)目標(biāo)的標(biāo)記,并對(duì)其它墨水目標(biāo)作出s墨水(sInk)目標(biāo)的標(biāo)記。為了說(shuō)明的目的,這里把兩種類(lèi)型的墨水描述為“tInk(t墨水)”和“sInk(s墨水)”。然而可以理解,可以使用其它名稱(chēng)來(lái)表示可以采用的各種類(lèi)型的墨水目標(biāo)。還有,可以使用另外類(lèi)型的目標(biāo)來(lái)存儲(chǔ)任何要求格式的電子墨水。
可以定義一個(gè)目標(biāo)(這里稱(chēng)為“InkCollector(墨水收集器)”目標(biāo))以及用來(lái)從墨水輸入設(shè)備捕獲墨水和/或向應(yīng)用程序提供墨水。在某種意義上,墨水收集器(InkCollector)目標(biāo)的作用是水龍頭,它通過(guò)收集作為一劃或多劃墨水筆劃的墨水并把墨水存儲(chǔ)在一個(gè)或多個(gè)相關(guān)聯(lián)的墨水目標(biāo)中,使墨水“傾注”到一個(gè)或多個(gè)不同的和/或有區(qū)別的墨水目標(biāo)中。墨水收集器(InkCollector)目標(biāo)可以把它自己附加到已知的應(yīng)用程序窗口中。然后,它可以通過(guò)使用任何或所有可得到的圖形輸入設(shè)備(可以包括輸入筆204和/或鼠標(biāo))而提供在該窗口上的實(shí)時(shí)涂墨。為了使用墨水收集器(InkCollector)目標(biāo),開(kāi)發(fā)者可以創(chuàng)建它,分配哪個(gè)窗口把墨水收集進(jìn)來(lái),以及啟動(dòng)目標(biāo)。在啟動(dòng)墨水收集器(InkCollector)目標(biāo)之后,可以進(jìn)行設(shè)置,用多種墨水收集模式(在其中收集墨水筆劃和/或手勢(shì))收集墨水。手勢(shì)是輸入筆204的一種運(yùn)動(dòng)或其它動(dòng)作,解譯成不是作為涂抹的墨水,而是解譯成為執(zhí)行某種動(dòng)作或功能的請(qǐng)求或命令。例如,為了選擇墨水的目的,可以執(zhí)行特定的手勢(shì),而另外的手勢(shì)可以是為了使墨水傾斜的目的。每一時(shí)刻當(dāng)輸入筆在數(shù)字化器輸入上時(shí)或與之接近時(shí),墨水收集器(InkCollector)目標(biāo)會(huì)收集筆劃和/或手勢(shì)。
墨水編輯控制(InkEdit Control)可以定義控制,這里稱(chēng)為“InkEdit(墨水編輯)”控制,它為捕獲、識(shí)別和/或顯示墨水(例如,以文本的形式)提供一種方便的方法。InkEdit(墨水編輯)控制可以進(jìn)一步支持顯示墨水為具有墨水一格式化和/或文本格式化能力的嵌入的目標(biāo)(例如,作為嵌入的t墨水(tInk)目標(biāo),經(jīng)過(guò)編程可通過(guò)墨水選擇特性存取),諸如加粗、下劃線、傾斜、上標(biāo)、下標(biāo)、對(duì)齊等。這個(gè)目標(biāo)的主要指定應(yīng)用是允許輸入墨水以及顯示墨水或從墨水識(shí)別的文本。這個(gè)控制可以進(jìn)一步允許對(duì)墨水和/或所識(shí)別的文本進(jìn)行編輯和/或格式化。
眾知的微軟WINDOWS用戶接口是編輯控制(即,RichEdit和RichTextBox)。InkEdit(墨水編輯)控制的實(shí)施例向開(kāi)發(fā)者提供了這些控制的擴(kuò)充墨水版本,它們已經(jīng)是熟悉的和可能已經(jīng)使用在它們的應(yīng)用程序中,除了從鍵盤(pán)接收文本的現(xiàn)有能力之外,把各種特征添加到現(xiàn)有的RichEdit控制,以接收來(lái)自輸入筆、鼠標(biāo)和/或其它指針的文本。例如,在一個(gè)實(shí)施例中,InkEdit(墨水編輯)控制提供接收電子墨水手寫(xiě)和識(shí)別的能力,并把該墨水轉(zhuǎn)換成文本。InkEdit(墨水編輯)控制可以進(jìn)一步提供接收手寫(xiě)作為用于以后識(shí)別的墨水,致使手寫(xiě)本身是可編輯的能力。
為了使用InkEdit(墨水編輯)控制,開(kāi)發(fā)者需要簡(jiǎn)單地用具體例子說(shuō)明InkEdit(墨水編輯)控制。開(kāi)發(fā)者和/或運(yùn)行時(shí)用戶可以進(jìn)一步把一種或多種模式應(yīng)用于InkEdit(墨水編輯)控制各種特征。例如,一種模式可以指示是否應(yīng)該插入墨水作為墨水或文本。InkEdit(墨水編輯)控制可以管理許多內(nèi)部世俗細(xì)節(jié),用于建立圖形輸入上下文、收聽(tīng)數(shù)字化器事件、收集筆劃、把筆劃饋送到識(shí)別器和/或把識(shí)別的結(jié)果(例如,它可以是OLE嵌入目標(biāo))饋送到InkEdit(墨水編輯)控制進(jìn)行顯示以及以后的保留。
在一個(gè)示例實(shí)施例中,可以在ActiveX和Win32中實(shí)施InkEdit(墨水編輯)控制,并基于傳統(tǒng)的微軟Win32 Rich Edit控制。在另一個(gè)示例實(shí)施例中,可以在微軟.NET實(shí)施InkEdit(墨水編輯)控制,并基于Win32 InkEdit、RichEdit控制以及微軟.NET RichTextBox控制。如所眾知,微軟RichEdit和Rich TextBox控制允許用戶輸入、編輯、格式化、打印和存儲(chǔ)文本,同時(shí)提供各種先進(jìn)的格式化特征(諸如文本字體、顏色、格式化等)。因此,除了現(xiàn)在可應(yīng)用于墨水和傳統(tǒng)文本的那些特征之外,本發(fā)明的InkEdit(墨水編輯)控制可以具有許多由RichEdit和RichTextBox控制提供的特征。墨水可以成為它自己中的以及它自己的第一級(jí)公民。在可能對(duì)文本進(jìn)行加粗、下劃線、傾斜等的情況中,InkEdit(墨水編輯)控制和它的編程接口可以允許象文本那么方便地操作墨水信息,同時(shí)提供手寫(xiě)墨水的濃厚度。
在某些實(shí)施例中,設(shè)計(jì)InkEdit(墨水編輯)控制使之在單行和多行文本輸入和編輯的形式情況中能很好地工作。InkEdit(墨水編輯)控制可以以原文手寫(xiě)的形式從一個(gè)用戶得到墨水輸入??梢宰R(shí)別墨水輸入,可以把打印的文本插入到位。除了用戶正在用墨水寫(xiě)時(shí),用于InkEdit(墨水編輯)的缺省用戶接口可以類(lèi)似于傳統(tǒng)Rich TextBox控制的缺省用戶接口。InkEdit(墨水編輯)控制可以顯示原始的墨水或經(jīng)識(shí)別的文本(或兩者)。可以把所顯示的墨水定標(biāo)到InkEdit(墨水編輯)控制的當(dāng)前輸入字體的字號(hào),還可以與其它文本串聯(lián)式地顯示,和/或可以改變它的位置、字號(hào)和/或顏色。另一方面,所顯示的墨水可以保持它的原始位置、字號(hào)和/或顏色。
在一個(gè)示例實(shí)施例中,InkEdit(墨水編輯)控制的缺省特性是識(shí)別墨水并在短的識(shí)別時(shí)間過(guò)去之后,把墨水轉(zhuǎn)換成文本。這個(gè)識(shí)別時(shí)間可以是所要求的任何時(shí)間量,諸如約2000毫秒,或在約100毫秒到約5000毫秒的范圍內(nèi),或在約200毫秒到約2000毫秒的范圍內(nèi)。在把識(shí)別時(shí)間設(shè)置成零時(shí),可以禁止自動(dòng)識(shí)別。因?yàn)镮nkEdit(墨水編輯)控制可以是超級(jí)的RichEdit,所以它又可能在InkEdit(墨水編輯)控制中嵌入和顯示墨水??梢园衙總€(gè)墨水字插入控制作為墨水目標(biāo)(例如,t墨水(tInk)目標(biāo))。墨水目標(biāo)可以包括墨水以及與墨水相關(guān)聯(lián)的一個(gè)或多個(gè)特性。
當(dāng)施加插入時(shí),可以使墨水定標(biāo)為當(dāng)前字體的字號(hào)和其它環(huán)境特性,諸如傾斜或加粗。如果用戶選擇編輯墨水目標(biāo)的文本,則用戶可以首先把墨水轉(zhuǎn)換成文本。
參考圖3,InkEdit(墨水編輯)控制可以出現(xiàn)在與圖形用戶接口301相關(guān)聯(lián)的顯示器上。圖形用戶接口301可以包括一個(gè)或多個(gè)顯示空間302,用于接收汲取的墨水?dāng)?shù)據(jù)和/或用于顯示墨水和/或文本。圖形用戶接口可以接收數(shù)據(jù),諸如在顯示空間302中通過(guò)輸入筆204汲取的墨水?dāng)?shù)據(jù),并且InkEdit(墨水編輯)可以把數(shù)據(jù)解譯為墨水。InkEdit(墨水編輯)控制可以進(jìn)一步使墨水與通過(guò)應(yīng)用程序開(kāi)發(fā)者、用戶、和/或自動(dòng)地選擇的諸如加粗、下劃線、傾斜上標(biāo)、下標(biāo)、對(duì)準(zhǔn)、顏色、字號(hào)和/或等等之類(lèi)的一個(gè)或多個(gè)特性相關(guān)聯(lián)。如在圖3和4中所示,可以選擇某些墨水和提供一種特性,例如,選擇手寫(xiě)墨水詞“conceived in liberty”,然后使之傾斜,并選擇手寫(xiě)墨水詞“created equal”(如圖3中的虛線框所示),然后增加它的字號(hào)。InkEdit(墨水編輯)控制可以進(jìn)一步使墨水和與它相關(guān)聯(lián)的特性存儲(chǔ)而作為墨水目標(biāo)。因此,例如,可以把在顯示空間302中的墨水存儲(chǔ)在一個(gè)或多個(gè)墨水目標(biāo)中,而可以把詞“conceived in liberty”存儲(chǔ)在墨水目標(biāo)中并與傾斜特性相關(guān)聯(lián)。InkEdit(墨水編輯)控制可以根據(jù)接收到的墨水?dāng)?shù)據(jù)使墨水得以顯示。在一個(gè)實(shí)施例中,例如,在接收到墨水的顯示空間302中的相同位置處的顯示空間302中顯示墨水。
墨水可以在顯示空間302中保持顯示(即,余暉),或可以識(shí)別墨水和/或把它轉(zhuǎn)換成文本。這種識(shí)別和轉(zhuǎn)換可以立即發(fā)生,或在識(shí)別時(shí)間過(guò)去之后和/或根據(jù)命令(例如,來(lái)自用戶或來(lái)自應(yīng)用程序。在墨水被識(shí)別和/或根據(jù)時(shí)間過(guò)去之后條件對(duì)墨水轉(zhuǎn)換情況下,這個(gè)識(shí)別時(shí)間可以是所要求的任何時(shí)間量,諸如約2000毫秒,或在約100毫秒到約5000毫秒的范圍內(nèi),或在約200毫秒到約2000毫秒的范圍內(nèi)。可以根據(jù)提起輸入筆204使之離開(kāi)顯示表面202的時(shí)間和/或根據(jù)筆劃的結(jié)束來(lái)起動(dòng)用于對(duì)識(shí)別時(shí)間進(jìn)行計(jì)時(shí)的定時(shí)器,并且在時(shí)間條件發(fā)生之前可以根據(jù)輸入筆204回到顯示表面202而取消計(jì)時(shí)??梢允苟〞r(shí)器起動(dòng)的其它事件包括輸入筆204停止在顯示表面202上的運(yùn)動(dòng),來(lái)自輸入筆204的手勢(shì),諸如按鈕和/或等等的其它輸入。根據(jù)一個(gè)或多個(gè)模式開(kāi)關(guān)的設(shè)置,決定可以或不可以識(shí)別和/或顯示墨水作為打印的文本??梢允挂粋€(gè)或多個(gè)模式開(kāi)關(guān)與一個(gè)或多個(gè)顯示單元(例如,顯示單元303)相關(guān)聯(lián)或可以使用戶不知道(即,不顯示在顯示器上)。當(dāng)開(kāi)關(guān)是第一種設(shè)置時(shí),將不作為文本而識(shí)別或顯示墨水。在某些實(shí)施例中,根據(jù)特定的命令仍可以識(shí)別和/或顯示墨水作為文本。當(dāng)開(kāi)關(guān)是第二種設(shè)置時(shí),可以識(shí)別和/或顯示墨水作為文本(如這里所述,立即、在時(shí)間過(guò)去之后、或根據(jù)命令)。當(dāng)顯示墨水作為文本時(shí),可以顯示從識(shí)別產(chǎn)生的文本來(lái)代替顯示空間302中的墨水,致使被替代的墨水不再顯示在顯示空間302中。圖5示出已經(jīng)被識(shí)別和轉(zhuǎn)換成文本的顯示空間302中的一部分墨水,而圖6示出已經(jīng)被識(shí)別和轉(zhuǎn)換成文本的顯示空間302中的所有墨水。在這些示意圖中,手寫(xiě)體不是原始手寫(xiě)墨水,而印刷字體表示經(jīng)識(shí)別的文本。
可以通過(guò)單個(gè)識(shí)別器或諸如識(shí)別器的集合之類(lèi)的多個(gè)識(shí)別器識(shí)別墨水。識(shí)別器可以包括一個(gè)或多個(gè)手勢(shì)識(shí)別器和/或文本識(shí)別器。可以進(jìn)一步使待識(shí)別墨水的選擇與特定識(shí)別上下文相關(guān)聯(lián),所述特定識(shí)別上下文可以包括連同一個(gè)或多個(gè)工作識(shí)別特性的所謂的“階乘識(shí)別符(factoid)”特性??梢哉J(rèn)為階乘識(shí)別符特性是提供給識(shí)別上下文的一組“線索”,有助于使墨水上下文的識(shí)別更為正確??梢远x表示執(zhí)行墨水識(shí)別能力、獲取識(shí)別結(jié)果和/或獲取另外識(shí)別結(jié)果的識(shí)別器上下文目標(biāo)。識(shí)別器上下文目標(biāo)可以啟動(dòng)安裝在系統(tǒng)中的各種識(shí)別器執(zhí)行墨水識(shí)別而適當(dāng)?shù)靥幚磔斎???梢詧?zhí)行包括后臺(tái)識(shí)別和前臺(tái)識(shí)別的至少兩類(lèi)識(shí)別。在系統(tǒng)的后臺(tái)處理中發(fā)生后臺(tái)識(shí)別,并可能由于其它系統(tǒng)事件(由用戶創(chuàng)建或其它情況)而停止。相反,前臺(tái)識(shí)別一般由用戶啟動(dòng),并且直到完成識(shí)別才停止。識(shí)別器上下文目標(biāo)可以接收待識(shí)別的墨水筆劃,階乘識(shí)別符特性可以定義輸入墨水和所要求的識(shí)別輸出上的限制和/或其它參數(shù)。例如,可能設(shè)置的限制包括在識(shí)別期間要使用的語(yǔ)言、字典和/或文法。當(dāng)聯(lián)系一種形式使用InkEdit(墨水編輯)控制時(shí),對(duì)于該形式中的每個(gè)數(shù)據(jù)輸入字段可以設(shè)置不同的識(shí)別器上下文和/或階乘識(shí)別符。各種數(shù)據(jù)輸入字段對(duì)于某些信息組可能是特定的,諸如具有數(shù)字、加號(hào)、虛線和括號(hào)的電話號(hào)碼字段;只具有數(shù)字和虛線的郵政編碼字段;只具有大寫(xiě)字母的州的縮寫(xiě);通用資源定位器(URL);以及等等。
具有不同的識(shí)別器上下文和/或階乘識(shí)別符的一個(gè)潛在的優(yōu)點(diǎn)在于在某些實(shí)施例中,可以調(diào)整發(fā)生識(shí)別的時(shí)間幀或什么觸發(fā)識(shí)別。例如,對(duì)于在一種形式中的名稱(chēng)或說(shuō)明字段,有可能要求識(shí)別發(fā)生于每個(gè)字的結(jié)束處。然而,當(dāng)使用州、街道/公寓號(hào)碼或郵政編碼字段(例如)時(shí),有可能要求識(shí)別發(fā)生于寫(xiě)入每個(gè)字符之后。在某些情況中,可以使用一個(gè)字符到一個(gè)字符的識(shí)別,以提供比通過(guò)同時(shí)識(shí)別一個(gè)字符組可以得到的識(shí)別正確度更高的識(shí)別正確度。
InkEdit(墨水編輯)控制可以進(jìn)一步提供手勢(shì)支持,并可以根據(jù)手勢(shì)產(chǎn)生事件。參考圖7,可以支持各種手勢(shì),諸如所示的示例手勢(shì)701-704。例如,手勢(shì)701可以表示托架返回,手勢(shì)702可以表示跳格命令,手勢(shì)703可以表示空格字符,以及手勢(shì)704可以表示退格命令??赡苡性S多其它手勢(shì)。
InkEdit(墨水編輯)控制可以進(jìn)一步提供校正用戶接口,該接口允許用戶按需要觀看另外的識(shí)別結(jié)果,使用屏幕上鍵盤(pán)和/或使用字符、字母和/或塊文本識(shí)別器。還有,InkEdit(墨水編輯)控制可以允許使用相同的存儲(chǔ)和裝載機(jī)構(gòu)象傳統(tǒng)Windows Form Rich Textbox控制那樣來(lái)保持和裝載它的數(shù)據(jù)。
InkEdit API(墨水編輯應(yīng)用程序接口)InkEdit(墨水編輯)控制通過(guò)它的應(yīng)用程序接口(API)向用戶揭示許多功能。根據(jù)主機(jī)應(yīng)用程序,可以提供InkEdit API(墨水編輯應(yīng)用程序接口)的各種風(fēng)味。參考圖8,示例系統(tǒng)可以包括下列一個(gè)或多個(gè)ActiveX主機(jī)應(yīng)用程序801、Win32主機(jī)應(yīng)用程序802、和/或通用語(yǔ)言運(yùn)行時(shí)(CLR)主機(jī)應(yīng)用程序803。此外,可以定義InkEdit ActiveX控制804,并且可以與ActiveX主機(jī)應(yīng)用程序801對(duì)接。可以進(jìn)一步定義InkEdit Win32控制805,并可以與Win32主機(jī)應(yīng)用程序802對(duì)接??梢远xInkEdit WinForms控制806,并可以與CLR主機(jī)應(yīng)用程序803對(duì)接。最后,可以定義RichEdit 4.5 Win32控制807,它與InkEdit(墨水編輯)控制804、805、806的各種風(fēng)味中的任何一種或所有的相對(duì)接。InkEdit Win32控制805可以是其它兩種控制(ActiveX控制804和WinForms控制806)的基礎(chǔ)。在一個(gè)實(shí)施例中,可以在Win32控制805中執(zhí)行關(guān)鍵功能,諸如墨水的收集、具有識(shí)別器的迭代和/或進(jìn)行RichEditWin32控制807的子分類(lèi)。ActiveX InkEdit控制804可以使用通過(guò)Win32InkEdit控制805定義的C++分類(lèi),并可以基于該功能來(lái)創(chuàng)建ActiveX支持??梢詮腤informs Rich TextBox 808得到Winforms InkEdit控制806,并可以用這里討論的加墨水功能使它擴(kuò)展。例如,首先通過(guò)在RichTextBox 808提供的現(xiàn)有API單元的頂層上裝載代替RichEdit控制的Win32 InkEdit控制和按需要添加新方法、特性和/或事件,可以擴(kuò)展Winforms InkEdit控制806的功能。注意圖8描繪在各種主機(jī)環(huán)境中控制之間關(guān)系的示例組,但絕不是把控制之間的箭頭作為限制。
現(xiàn)在參考圖9討論InkEdit(墨水編輯)控制的API(應(yīng)用程序接口)。在圖9中,通過(guò)一個(gè)方框來(lái)表示InkEdit(墨水編輯)控制901,并示出API的各種單元(或功能上分組的單元),標(biāo)有射出和/或進(jìn)入表示InkEdit(墨水編輯)控制901的方框的箭頭940-960。一般,進(jìn)入InkEdit(墨水編輯)控制901方框的箭頭是指大部分修改InkEdit(墨水編輯)控制901(例如,通過(guò)改變它的特性中之一)和/或把信息提供給InkEdit(墨水編輯)控制901的其它單元的API單元(或功能上分組的單元)。從InkEdit(墨水編輯)控制901方框射出的箭頭是指大部分表示標(biāo)志或某些其它信息(通過(guò)InkEdit(墨水編輯)控制901提供給它的環(huán)境)的API單元(或功能上分組的單元)。然而,箭頭的方向是示意性的,并不是作為限制,所以并不阻止用進(jìn)入InkEdit(墨水編輯)控制901的箭頭來(lái)表示InkEdit(墨水編輯)控制901把信息提供給它的環(huán)境。同樣,并不阻止從InkEdit(墨水編輯)控制901射出的箭頭修改或提供到InkEdit(墨水編輯)控制901的信息。圖9進(jìn)一步示出InkEdit(墨水編輯)控制901的多個(gè)特性902-921??梢园碔nkEdit型控制的任何風(fēng)味(包括但是不限于,這里討論的Win32、ActiveX和.NET風(fēng)味)的任何組合或子組合來(lái)利用下面討論的API單元。
在示例實(shí)施例中的InkEdit API(墨水編輯應(yīng)用程序接口)具有按任何組合或子組合的下列細(xì)目和結(jié)構(gòu)(未示出)中的某一些或全部。例如,外形細(xì)目定義一個(gè)或多個(gè)值,該值規(guī)定當(dāng)顯示時(shí)InkEdit(墨水編輯)控制901的外形是平的還是3-維的。邊界格式細(xì)目定義一個(gè)或多個(gè)值,該值規(guī)定InkEdit(墨水編輯)控制901是否具有邊界。墨水—模式細(xì)目定義一個(gè)或多個(gè)值,該值規(guī)定用于汲取墨水的收集模式設(shè)置——是否禁止墨水收集,是否只收集墨水,或是否收集墨水和手勢(shì)兩者。插入模式細(xì)目定義一個(gè)或多個(gè)值,該值規(guī)定墨水是如何插入到InkEdit(墨水編輯)控制901中的,是作為墨水還是作為經(jīng)識(shí)別的文本。InkEdit狀態(tài)細(xì)目定義一個(gè)或多個(gè)值,該值規(guī)定InkEdit(墨水編輯)控制901是否空閑、收集墨水或識(shí)別墨水。裝載/存儲(chǔ)細(xì)目定義一個(gè)或多個(gè)值,該值規(guī)定是否裝載文件和/或作為Rich Text Format(RTF)文件、文本文件或其它格式的文件而存儲(chǔ)。鼠標(biāo)—按鈕細(xì)目定義一個(gè)或多個(gè)值,該值規(guī)定按下或正在按下哪個(gè)鼠標(biāo)按鈕。注意,除非另行規(guī)定,這里對(duì)于鼠標(biāo)或鼠標(biāo)按鈕的所有參考都同樣適用于輸入筆或輸入筆按鈕。滾動(dòng)條細(xì)目定義一個(gè)或多個(gè)值,該值規(guī)定InkEdit(墨水編輯)控制是否具有水平和/或垂直滾動(dòng)條。對(duì)準(zhǔn)細(xì)目定義一個(gè)或多個(gè)值,該值規(guī)定顯示的段落是否對(duì)準(zhǔn)InkEdit(墨水編輯)控制左或右頁(yè)邊線,或在左和右頁(yè)邊線之間。筆劃—信息結(jié)構(gòu)包括有關(guān)特定筆劃的信息,諸如使用哪個(gè)光標(biāo)來(lái)創(chuàng)建筆劃以及把筆劃存儲(chǔ)在哪里(例如,作為特定筆劃目標(biāo))。手勢(shì)—信息結(jié)構(gòu)包括有關(guān)特定手勢(shì)的信息,諸如使用哪個(gè)光標(biāo)來(lái)創(chuàng)建手勢(shì)、構(gòu)成手勢(shì)的筆劃,和/或把手勢(shì)存儲(chǔ)在哪里(例如,作為特定手勢(shì)目標(biāo))??梢栽贗nkEdit(墨水編輯)控制的Win32風(fēng)味中使用特別成功的筆劃—信息和手勢(shì)—信息結(jié)構(gòu)。識(shí)別—結(jié)果結(jié)構(gòu)包括有關(guān)文本識(shí)別結(jié)構(gòu)的信息,并且根據(jù)已準(zhǔn)備的識(shí)別結(jié)果而發(fā)送。例如,通過(guò)分立的通知消息,可以提供有關(guān)這些本文討論的結(jié)構(gòu)的某一些或全部使用在哪里的通知。
在示例實(shí)施例中的InkEdit API還具有按任何組合或子組合的、可以設(shè)置的以及可以返回它們表示的信息的一個(gè)或多個(gè)下列特性。例如,外形特性902表示所顯示的InkEdit(墨水編輯)控制901是平的還是3-維的。后臺(tái)—顏色特性903表示InkEdit(墨水編輯)控制901的后臺(tái)顏色。邊界格式特性904表示InkEdit(墨水編輯)控制901是否具有邊界。創(chuàng)建—參數(shù)特性905表示當(dāng)創(chuàng)建InkEdit(墨水編輯)控制901時(shí)創(chuàng)建參數(shù)。光標(biāo)特性906表示當(dāng)鼠標(biāo)指針在InkEdit(墨水編輯)控制901上時(shí)所顯示的光標(biāo)。畫(huà)圖—屬性特性907表示當(dāng)畫(huà)圖和在InkEdit(墨水編輯)控制901中顯示墨水(尚未被識(shí)別為文本的墨水)時(shí)使用的缺省畫(huà)圖屬性或當(dāng)畫(huà)墨水時(shí)施加到墨水的畫(huà)圖屬性。滾動(dòng)條禁止特性908表示是否啟動(dòng)或禁止InkEdit(墨水編輯)控制901中的滾動(dòng)條。拖拉—圖標(biāo)特性909表示待顯示作為拖拉—和—丟下操作中指針的圖標(biāo)。階乘識(shí)別符910特性表示階乘識(shí)別符(這里進(jìn)一步討論),識(shí)別器用它來(lái)限制它對(duì)于識(shí)別結(jié)果的搜索。各種字體和文本特性911表示InkEdit(墨水編輯)控制901所顯示文本的字體以及當(dāng)前選擇文本的或在插入點(diǎn)處的字體的名稱(chēng)和字號(hào)。其它字體和文本特性911表示當(dāng)前選擇的文本(或在插入點(diǎn)處)是否為加粗、傾斜或下劃線。再其它字體和文本特性911表示當(dāng)前選擇的文本(或在插入點(diǎn)處)是否出現(xiàn)在基線上、作為上標(biāo)、或作為下標(biāo),它們的對(duì)準(zhǔn),以及當(dāng)前選擇的文本或在插入點(diǎn)處的顏色。各種墨水—模式特性912表示當(dāng)在控制上畫(huà)圖時(shí)如何收集墨水以及是否禁止收集墨水,是否只收集墨水,或是否收集墨水和手勢(shì)兩者??刂啤i定特性913表示是否可以編輯InkEdit(墨水編輯)控制901的內(nèi)容。各種鼠標(biāo)特性914表示要顯示的當(dāng)前定制鼠標(biāo)圖標(biāo)以及當(dāng)鼠標(biāo)指針在InkEdit(墨水編輯)控制901的圖形描繪上時(shí)所顯示的鼠標(biāo)指針類(lèi)型。多線特性915表示InkEdit(墨水編輯)控制901是否為多線控制。各種識(shí)別器特性916表示使用哪個(gè)識(shí)別器來(lái)進(jìn)行識(shí)別,以及在已經(jīng)結(jié)束墨水筆劃之后開(kāi)始文本識(shí)別的時(shí)間量。滾動(dòng)條特性917表示在InkEdit(墨水編輯)控制901中顯示的滾動(dòng)條的類(lèi)型。墨水目標(biāo)特性918表示在當(dāng)前選擇的文本中的墨水目標(biāo)。設(shè)置這個(gè)墨水—目標(biāo)特性可能導(dǎo)致從輸入的墨水目標(biāo)清單識(shí)別的識(shí)別結(jié)果替代當(dāng)前的選擇。各種選擇—文本特性919表示在InkEdit(墨水編輯)控制901中的當(dāng)前選擇的文本、所選擇的字符數(shù)、所選擇的經(jīng)Rich Text Format(RTF)格式化的文本以及所選擇文本的開(kāi)始點(diǎn)。各種受控制文本特性920表示在InkEdit(墨水編輯)控制901的文本方框中顯示的當(dāng)前文本以及在包括所有RTF格式化代碼的InkEdit(墨水編輯)控制901中的文本。狀態(tài)特性921表示InkEdit(墨水編輯)控制901是否空閑、收集墨水或識(shí)別墨水。
在示例實(shí)施例中的InkEdit API還具有按任何組合或子組合的多個(gè)相關(guān)聯(lián)的消息、事件以及方法。由于InkEdit(墨水編輯)控制是超級(jí)的RichEdit控制,所以直接傳遞每個(gè)RichEdit消息(在大多數(shù)情況中),具有如RichEdit中的相同效果。這也應(yīng)用于事件通知消息,它把已經(jīng)發(fā)生特定事件通知InkEdit(墨水編輯)控制的父親窗口。
例如,根據(jù)光標(biāo)尖端(例如,輸入筆204的尖端)物理地接觸數(shù)字化表面(例如,表面202)而發(fā)送光標(biāo)—向下消息940。根據(jù)正完成的筆劃發(fā)送筆劃—完成消息941,并發(fā)生筆劃—完成事件。根據(jù)筆劃—完成事件的發(fā)生而發(fā)生筆劃—完成方法。根據(jù)正完成的手勢(shì)發(fā)送手勢(shì)—完成消息942,這可以通過(guò)手勢(shì)—完成事件來(lái)指示。
InkEdit API還可以具有與識(shí)別有關(guān)的事件、方法和消息943。根據(jù)已經(jīng)發(fā)生的識(shí)別發(fā)送這種與識(shí)別有關(guān)的消息,或得到或設(shè)置所使用的識(shí)別器。其它與識(shí)別有關(guān)的消息,在識(shí)別時(shí)間過(guò)去將導(dǎo)致發(fā)生識(shí)別之前,具體地強(qiáng)迫進(jìn)行識(shí)別。與識(shí)別有關(guān)的事件,根據(jù)待識(shí)別的應(yīng)用—特定的手勢(shì)以及根據(jù)一般的識(shí)別而發(fā)生。與識(shí)別有關(guān)的方法,根據(jù)正發(fā)生的識(shí)別事件或規(guī)定應(yīng)識(shí)別筆劃的收集以及要返回該識(shí)別結(jié)果而發(fā)生。
InkEdit API可以進(jìn)一步具有根據(jù)經(jīng)點(diǎn)擊InkEdit(墨水編輯)控制901而發(fā)生的事件944,根據(jù)按下或放開(kāi)一個(gè)鍵而發(fā)生的事件945,根據(jù)在InkEdit(墨水編輯)控制901上的鼠標(biāo)指針和/或輸入筆,以及按下、放開(kāi)、或雙擊而發(fā)生的事件946以及根據(jù)在InkEdit(墨水編輯)控制901上移動(dòng)的鼠標(biāo)指針而發(fā)生的事件947。
InkEdit API可以進(jìn)一步具有消息948,它用于根據(jù)在墨水編輯狀態(tài)細(xì)目中定義的值而獲取InkEdit(墨水編輯)控制901的狀態(tài);方法949,它把特定類(lèi)型的文件裝載到InkEdit(墨水編輯)控制901中或把InkEdit(墨水編輯)控制901的內(nèi)容存儲(chǔ)到特定類(lèi)型的文件中;以及用于處理Windows消息的方法950。
InkEdit API可以進(jìn)一步具有消息951,它根據(jù)在墨水模式細(xì)目中定義的值而獲取或設(shè)置InkEdit(墨水編輯)控制901的加墨水模式;以及消息952,它根據(jù)在墨水模式細(xì)目中定義的值而獲取或設(shè)置InkEdit(墨水編輯)控制901的墨水插入模。
InkEdit API可以進(jìn)一步具有消息953,它獲取當(dāng)前畫(huà)圖屬性或設(shè)置要在InkEdit(墨水編輯)控制901中使用的將來(lái)畫(huà)圖屬性;以及消息954,它獲取或設(shè)置InkEdit(墨水編輯)控制901的識(shí)別時(shí)間。例如,識(shí)別時(shí)間可以按毫秒來(lái)測(cè)量。
InkEdit API可以進(jìn)一步具有與手勢(shì)狀態(tài)有關(guān)的消息和方法955。定義與手勢(shì)狀態(tài)有關(guān)的消息獲取或設(shè)置用于InkEdit(墨水編輯)控制901的手勢(shì)狀態(tài)。與手勢(shì)狀態(tài)有關(guān)的方法使用手勢(shì)狀態(tài)的狀態(tài)來(lái)限制可能被InkEdit(墨水編輯)控制901識(shí)別的手勢(shì)的設(shè)置。
InkEdit API可以進(jìn)一步具有消息956,它獲取或設(shè)置InkEdit(墨水編輯)控制901待使用的識(shí)別器;消息957,它獲取或設(shè)置用于識(shí)別的階乘識(shí)別符;消息958,它獲取或設(shè)置當(dāng)前選擇的墨水;消息959,它獲取或設(shè)置所顯示的鼠標(biāo)圖標(biāo);以及消息960,它獲取或設(shè)置要顯示的鼠標(biāo)指針。
InkEdit API可以進(jìn)一步具有構(gòu)造者961,用于創(chuàng)建新InkEdit(墨水編輯)控制;以及當(dāng)為InkEdit(墨水編輯)控制901創(chuàng)建句柄時(shí)發(fā)生的方法962。在InkEdit(墨水編輯)控制的.NET風(fēng)味中,可以認(rèn)為該方法是構(gòu)造者。InkEdit API可以進(jìn)一步具有根據(jù)在控制變化中的文本選擇而發(fā)生的選擇改變的事件。
這里所描述的實(shí)施本發(fā)明各方面的示例系統(tǒng)和方法只是作為例子而示出,可以理解,本發(fā)明當(dāng)然不限于這些實(shí)施例。特別是在上述學(xué)說(shuō)的指導(dǎo)下,熟悉本技術(shù)領(lǐng)域的人員可以進(jìn)行各種修改。例如,可以單獨(dú)利用上述實(shí)施例中的每個(gè)單元,或與其它實(shí)施例中的的單元組合。雖然已經(jīng)使用所附的權(quán)利要求書(shū)來(lái)定義本發(fā)明,但是示出這些權(quán)利要求在于打算使本發(fā)明按任何組合或子組合來(lái)包括這里所描述的單元和步驟。因此,本發(fā)明可由任何數(shù)目的變化組合來(lái)定義,它按各種組合或子組合而結(jié)合包括說(shuō)明書(shū)、權(quán)利要求書(shū)和附圖的規(guī)格中的一個(gè)或多個(gè)單元。對(duì)于有關(guān)技術(shù)領(lǐng)域中的人員是顯而易見(jiàn)的,在本規(guī)格的指導(dǎo)下,可以利用本發(fā)明的各方面的獨(dú)立的或與這里定義的一個(gè)或多個(gè)單元或步驟組合的另外組合作為本發(fā)明的修改或變型或作為本發(fā)明的一部分。打算使這里包括的本發(fā)明的書(shū)面說(shuō)明包含所有這種修改和變型。還有,應(yīng)該認(rèn)識(shí)到,雖然這里提供目標(biāo)和其它API單元的各種名稱(chēng),但是這種名稱(chēng)只是作為示意,可以使用任何名稱(chēng)而不偏離本發(fā)明的范圍。
權(quán)利要求
1.在一種控制中操作墨水的一種方法,所述方法包括下列步驟接收數(shù)據(jù);解譯數(shù)據(jù)作為墨水;使墨水與至少一個(gè)特性相關(guān)聯(lián);以及存儲(chǔ)具有至少一個(gè)特性的墨水作為墨水目標(biāo)。
2.如權(quán)利要求1所述的方法,其特征在于,所述墨水包括多劃筆劃,所述方法進(jìn)一步包括存儲(chǔ)多劃筆劃作為多個(gè)相應(yīng)的筆劃目標(biāo)。
3.如權(quán)利要求2所述的方法,其特征在于,進(jìn)一步包括根據(jù)所述筆劃中之一的結(jié)束而產(chǎn)生事件的步驟。
4.如權(quán)利要求1所述的方法,其特征在于,至少一個(gè)特性包括加粗、傾斜和顏色中的至少一個(gè)。
5.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括接收命令步驟,把至少一個(gè)特性施加給所述墨水。
6.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括顯示所述墨水。
7.如權(quán)利要求6所述的方法,其特征在于,顯示墨水的所述步驟包括根據(jù)至少一個(gè)特性顯示墨水。
8.在一種控制中操作墨水的一種方法,所述方法包括下列步驟接收在顯示區(qū)中的數(shù)據(jù);解釋數(shù)據(jù)作為墨水;在顯示區(qū)中顯示墨水;識(shí)別墨水作為文本;以及用文本替代所顯示的墨水。
9.如權(quán)利要求8所述的方法,其特征在于,進(jìn)一步包括使至少一個(gè)特性與所述文本相關(guān)聯(lián),并且根據(jù)至少一個(gè)特性顯示所述文本。
10.如權(quán)利要求9所述的方法,其特征在于,至少一個(gè)特性是加粗、傾斜和顏色中的至少一個(gè)。
11.如權(quán)利要求9所述的方法,其特征在于,所述識(shí)別的步驟包括根據(jù)預(yù)定的識(shí)別上下文識(shí)別墨水。
12.一種配置成用控制與用戶對(duì)接的圖形用戶接口,所述圖形用戶接口包括第一顯示空間,配置成接收墨水;具有第一模式開(kāi)關(guān)的控制,把所述控制配置成當(dāng)所述第一模式開(kāi)關(guān)在第一設(shè)置時(shí)存儲(chǔ)墨水,并當(dāng)?shù)谝荒J介_(kāi)關(guān)在第二設(shè)置時(shí)使墨水作為文本被識(shí)別;以及第二顯示空間,配置成根據(jù)第一模式開(kāi)關(guān)的設(shè)置在第二顯示空間顯示墨水或文本。
13.如權(quán)利要求12所述的圖形用戶接口,其特征在于,所述控制配置成使之當(dāng)?shù)谝荒J介_(kāi)關(guān)在第一設(shè)置時(shí)存儲(chǔ)墨水。
14.如權(quán)利要求12所述的圖形用戶接口,其特征在于,所述第一和第二顯示空間是相同的顯示空間。
15.如權(quán)利要求12所述的圖形用戶接口,其特征在于,在觸摸—敏感顯示器上顯示第一顯示空間,根據(jù)輸入筆相對(duì)于第一顯示空間中的觸摸—敏感顯示器的運(yùn)動(dòng)接收墨水。
16.如權(quán)利要求12所述的圖形用戶接口,其特征在于,進(jìn)一步包括一種特性功能,用于當(dāng)?shù)谝荒J介_(kāi)關(guān)在第一設(shè)置時(shí)把至少一種特性施加于墨水,并當(dāng)?shù)谝荒J介_(kāi)關(guān)在第二設(shè)置時(shí)把至少一種特性施加于文本。
17.如權(quán)利要求16所述的圖形用戶接口,其特征在于,所述至少一種特性是加粗、傾斜和顏色中的至少一種。
18.如權(quán)利要求12所述的圖形用戶接口,其特征在于,所述控制進(jìn)一步包括第二開(kāi)關(guān),并進(jìn)一步配置成根據(jù)第二開(kāi)關(guān)的設(shè)置接收或不接收對(duì)第一顯示空間的墨水輸入。
19.如權(quán)利要求12所述的圖形用戶接口,其特征在于,所述控制進(jìn)一步配置成,當(dāng)?shù)谝婚_(kāi)關(guān)在第二設(shè)置時(shí),在使所述墨水作為文本被識(shí)別之前等待預(yù)定的時(shí)間量。
20.如權(quán)利要求19所述的圖形用戶接口,其特征在于,預(yù)定時(shí)間量在約100毫秒到約5000毫秒的范圍內(nèi)。
21.如權(quán)利要求12所述的圖形用戶接口,其特征在于,所述控制進(jìn)一步包括用于把至少一種特性施加于所述墨水的裝置,所述第二顯示空間被配置成根據(jù)至少一種特性顯示所述墨水。
22.如權(quán)利要求12所述的圖形用戶接口,其特征在于,所述控制進(jìn)一步包括第三開(kāi)關(guān),并配置成根據(jù)第三開(kāi)關(guān)的設(shè)置調(diào)用多個(gè)識(shí)別器中的至少一個(gè)識(shí)別器使所述墨水作為文本被識(shí)別。
23.如權(quán)利要求12所述的圖形用戶接口,其特征在于,所述第一模式開(kāi)關(guān)是與顯示的單元相關(guān)聯(lián)的。
全文摘要
一種控制和它的相關(guān)聯(lián)的編程接口,用于允許電子墨水的輸入,電子墨水的編輯和其它操作和/或墨水的識(shí)別。可以把墨水存儲(chǔ)在諸如墨水目標(biāo)之類(lèi)的數(shù)據(jù)結(jié)構(gòu)中,允許稍后通過(guò)應(yīng)用程序獲取。在文本可能要加粗、下劃線、傾斜等的情況下,所述控制器和它的編程接口可以允許墨水信息象文本那樣便于操作,同時(shí)提供手寫(xiě)墨水的濃厚度。
文檔編號(hào)G06T1/00GK1501239SQ03123838
公開(kāi)日2004年6月2日 申請(qǐng)日期2003年5月14日 優(yōu)先權(quán)日2002年5月14日
發(fā)明者A·古納里斯, S·道奇, T·A·杰林斯基, A·J·戈?duì)柕仑惛? K·費(fèi)爾德曼, T·A·托塞特, R·L·錢(qián)伯斯, R·K·塞勒, A 古納里斯, 侶, 塞勒, 戈?duì)柕仑惛? 托塞特, 杰林斯基, 錢(qián)伯斯 申請(qǐng)人:微軟公司