專利名稱:一種增強(qiáng)鼠標(biāo)滾輪功能的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種增強(qiáng)鼠標(biāo)或跟蹤球的滾輪功能的方法。
背景技術(shù):
1997年,微軟(Microsoft)公司發(fā)布了第一款帶有滾輪的鼠標(biāo)產(chǎn)品,鼠標(biāo)滾輪這一看起來(lái)很簡(jiǎn)單的發(fā)明,卻成為近年來(lái)鼠標(biāo)產(chǎn)品最重要、最實(shí)用的改進(jìn)之一。這種滾輪鼠標(biāo)除了包括一套向計(jì)算機(jī)提供鼠標(biāo)位置的指針定位系統(tǒng)和兩只可以被用戶按下或輕擊的按鍵(即左、右按鍵)外還包括設(shè)置于左、右按鍵之間的一只(或兩只)可以被用戶轉(zhuǎn)動(dòng)的滾輪。當(dāng)按鍵或滾輪被用戶按下時(shí),則觸發(fā)MouseDown事件消息;當(dāng)處于按下狀態(tài)的按鍵或滾輪被用戶松開時(shí),則觸發(fā)MouseUp事件消息;當(dāng)滾輪被用戶轉(zhuǎn)動(dòng)時(shí),則觸發(fā)MouseWheel事件消息。多數(shù)視窗程序都支持鼠標(biāo)的滾輪操作,例如在”Internet Explorer 6.0”中,用戶操作滾輪可以方便地控制網(wǎng)頁(yè)的上下卷動(dòng)。用戶每轉(zhuǎn)動(dòng)滾輪一定的角度,就會(huì)向接受MouseWheel事件的頁(yè)面發(fā)出一個(gè)“卷動(dòng)若干個(gè)卷動(dòng)單位”(卷動(dòng)單位的個(gè)數(shù)可以由用戶設(shè)定)的指令。使頁(yè)面卷動(dòng)實(shí)際上是一個(gè)向該頁(yè)面連續(xù)快速發(fā)出許多個(gè)“卷動(dòng)若干個(gè)卷動(dòng)單位”指令的過(guò)程。由于用戶可以連續(xù)快速的轉(zhuǎn)動(dòng)滾輪,并且用戶可以精確地控制并感知滾輪轉(zhuǎn)動(dòng)的角度和速度,從而使頁(yè)面實(shí)時(shí)地跟隨用戶的意圖進(jìn)行或快或慢的卷動(dòng),所以滾輪對(duì)于象卷動(dòng)頁(yè)面這樣需要連續(xù)快速群發(fā)某一指令的操作是十分方便快捷的。為擴(kuò)充鼠標(biāo)滾輪的功能,許多視窗軟件都支持一種將鍵盤上的“Ctrl”鍵與鼠標(biāo)滾輪的組合操作,即當(dāng)用戶按住“Ctrl”鍵的同時(shí)轉(zhuǎn)動(dòng)滾輪則可以放大或縮小當(dāng)前頁(yè)面的顯示比例。這一做法僅僅為鼠標(biāo)滾輪擴(kuò)充了一項(xiàng)功能,并且用戶實(shí)施起來(lái)并不方便,因?yàn)樾枰脩粲靡恢皇洲D(zhuǎn)動(dòng)鼠標(biāo)滾輪的同時(shí)用另一只手費(fèi)力地去定位并按住鍵盤上的“Ctrl”鍵,這便大大限制了該項(xiàng)功能的快捷性。
盡管鼠標(biāo)滾輪的出現(xiàn)大大方便了包括Internet Explorer、Microsoft Office在內(nèi)等眾多視窗軟件的使用,但其所能實(shí)現(xiàn)的功能仍然十分有限,一只滾輪遠(yuǎn)遠(yuǎn)滿足不了用戶方便快捷地實(shí)現(xiàn)多種常用功能的需求。例如,用戶瀏覽IE窗口時(shí)用戶常用的指令有垂直逐行卷動(dòng)網(wǎng)頁(yè)、水平卷動(dòng)網(wǎng)頁(yè)、垂直整屏卷動(dòng)網(wǎng)頁(yè)、調(diào)節(jié)音量大小、放大縮小頁(yè)面顯示比例、多個(gè)窗口間的相互切換等近十種適合滾輪操作指令。然而為滿足用戶的需要而在鼠標(biāo)上設(shè)置超過(guò)兩只滾輪都是不現(xiàn)實(shí)的,因?yàn)橐粊?lái)鼠標(biāo)殼體上的空間有限不宜設(shè)置過(guò)多的滾輪,二來(lái)限于制造成本,三來(lái)即使設(shè)置了多只滾輪也不便于用戶的操作。所以,用戶需要快捷地實(shí)現(xiàn)多種適合滾輪操作的快捷功能與硬件上增設(shè)滾輪的不可行性這對(duì)尖銳的矛盾一直以來(lái)困擾著用戶與軟硬件開發(fā)商。
如圖1所示的一種最為常見(jiàn)的目前公知的滾輪鼠標(biāo),具備一只滾輪和兩只按鍵,采用這種鼠標(biāo)用戶只能通過(guò)直接轉(zhuǎn)動(dòng)滾輪實(shí)現(xiàn)上下逐行翻動(dòng)網(wǎng)頁(yè)這一項(xiàng)功能。而對(duì)其他常用指令的實(shí)現(xiàn),用戶不得不采用先移動(dòng)視線尋找到響應(yīng)的圖標(biāo)或菜單欄,然后再移動(dòng)鼠標(biāo)使指針定位到該圖標(biāo)或菜單上,最后再點(diǎn)擊該圖標(biāo)或菜單這樣繁瑣的方式來(lái)完成。
如圖2所示的第二種目前公知的滾輪鼠標(biāo)具備兩只滾輪和兩只按鍵,這種鼠標(biāo)可以快捷實(shí)現(xiàn)兩項(xiàng)常用功能,然而一只滾輪的多出造成了制造成本的升高、產(chǎn)品構(gòu)形的偏大,同時(shí)由于設(shè)置區(qū)域有限而不得不將一只滾輪設(shè)置于不便用戶操作的位置,用戶操作這只滾輪時(shí)必須改變?cè)心笪帐髽?biāo)的方式,完成操作后再恢復(fù)原有捏握鼠標(biāo)的方式,造成了使用上的不便。
如圖3所示的第三種目前公知的滾輪鼠標(biāo)具備一只滾輪和七只按鍵,通過(guò)滾輪鍵操作和按鍵操作它能快捷實(shí)現(xiàn)四項(xiàng)常用功能,這種鼠標(biāo)功能的增加是以較普通的單滾輪雙鍵鼠標(biāo)多出的五只附加按鍵來(lái)實(shí)現(xiàn)的,這將造成制造成本的大幅上升,產(chǎn)品的構(gòu)形也不可避免地偏大,同時(shí)由于設(shè)置區(qū)域有限而不得不將附加按鍵設(shè)置于不便用戶操作的位置,用戶操作這些附加按鍵時(shí)必須改變?cè)心笪帐髽?biāo)的方式,完成操作后再恢復(fù)原有捏握鼠標(biāo)的方式,造成了使用上的不便。
申請(qǐng)?zhí)枮?2121866.8,名稱為“具有用于多方向滾動(dòng)圖像的一種滾輪裝置的輸入設(shè)備”的發(fā)明專利公布了另一種從硬件上增強(qiáng)鼠標(biāo)功能的方法。目前已有基于這種技術(shù)的滾輪鼠標(biāo)處于應(yīng)用階段,這種滾輪鼠標(biāo)具備一只“縱橫輪”,“縱橫輪”除具備普通滾輪的功能外還可以左右擺動(dòng),當(dāng)用戶使其向左或向右擺動(dòng)時(shí),會(huì)啟動(dòng)其內(nèi)部的微動(dòng)開關(guān)從而觸發(fā)特定的鼠標(biāo)事件消息,以實(shí)現(xiàn)頁(yè)面水平卷動(dòng)的功能。然而這種鼠標(biāo)的滾輪需要的操作空間較大,其結(jié)構(gòu)形式與裝配流程也十分復(fù)雜,制造成本偏高。用戶進(jìn)行頁(yè)面垂直卷動(dòng)的操作是通過(guò)直接轉(zhuǎn)動(dòng)鼠標(biāo)滾輪的方式來(lái)實(shí)現(xiàn)的,而對(duì)于頁(yè)面的水平卷動(dòng)用戶仍習(xí)慣于采用同樣的方式,從而用戶可以準(zhǔn)確方便地控制頁(yè)面卷動(dòng)的距離、速度與節(jié)奏。但是“縱橫輪”實(shí)際上是采用按動(dòng)開關(guān)的形式來(lái)實(shí)現(xiàn)頁(yè)面的水平滾動(dòng)的,按動(dòng)開關(guān)的方式并不適于像卷動(dòng)頁(yè)面這樣需要連續(xù)快速群發(fā)某一指令的操作,所以用戶往往需要很大的努力才能漸漸適應(yīng)“縱橫輪”的操作。
目前還有一些公知的鼠標(biāo)功能增強(qiáng)軟件,能夠通過(guò)軟件來(lái)達(dá)到增強(qiáng)鼠標(biāo)功能的目的。其工作原理為首先,鼠標(biāo)功能增強(qiáng)軟件截獲鼠標(biāo)事件消息。然后,鼠標(biāo)功能增強(qiáng)軟件對(duì)鼠標(biāo)事件消息進(jìn)行判斷分析。最后,如果激發(fā)某項(xiàng)快捷功能的形式與該鼠標(biāo)事件相匹配時(shí)則將相應(yīng)的快捷功能指令發(fā)送給前臺(tái)窗口,如果沒(méi)有與之相匹配的激發(fā)快捷功能的形式則將截獲的鼠標(biāo)事件消息原封不動(dòng)地發(fā)送給前臺(tái)窗口。目前公知的鼠標(biāo)功能增強(qiáng)軟件所采用的功能增強(qiáng)方案主要包括如下三種第一種方案為當(dāng)用戶按下并松開設(shè)定的按鍵后將有一個(gè)窗口顯示在鼠標(biāo)指針附近,這個(gè)窗口由若干個(gè)排列整齊的快捷功能圖標(biāo)組成(如圖4所示),然后用戶移動(dòng)鼠標(biāo)指針用左鍵點(diǎn)擊其中的圖標(biāo)則實(shí)現(xiàn)相應(yīng)的功能。可以看出,采用這種方式實(shí)現(xiàn)一個(gè)功能需要四部操作,即第一步按動(dòng)設(shè)定的按鍵,第二步移動(dòng)視線尋找到窗口中對(duì)應(yīng)功能的圖標(biāo),第三步移動(dòng)鼠標(biāo)指針到對(duì)應(yīng)圖標(biāo)上方,第四步點(diǎn)擊左鍵??梢钥闯銎洳僮鞑襟E較多,并且移動(dòng)視線尋找圖標(biāo)和移動(dòng)光標(biāo)到特定位置的操作都需要用戶集中精神,長(zhǎng)時(shí)間的操作容易給用戶帶來(lái)疲勞。不僅如此,由于鼠標(biāo)左右鍵各有功用,所以往往只能將滾輪作為啟動(dòng)鼠標(biāo)增強(qiáng)功能的設(shè)定按鍵,然而按動(dòng)滾輪需要較大的力量,這便造成了使用上的不便。
第二種方案為鼠標(biāo)功能增強(qiáng)軟件不斷地記錄鼠標(biāo)指針的軌跡并對(duì)其進(jìn)行分析,當(dāng)軌跡符合一定的形式時(shí)將激發(fā)用戶設(shè)定的快捷功能。例如用戶將“Z”字型軌跡設(shè)定為實(shí)現(xiàn)最大化當(dāng)前窗口的功能,則當(dāng)用戶移動(dòng)鼠標(biāo)使指針在屏幕上延“Z”字型軌跡移動(dòng)后,鼠標(biāo)功能增強(qiáng)軟件將向當(dāng)前窗口發(fā)送最大化的指令。這種增強(qiáng)方案的弊端為,當(dāng)用戶只是進(jìn)行普通的移動(dòng)指針操作且并不想實(shí)現(xiàn)快捷功能時(shí),而鼠標(biāo)的軌跡又恰好符合鼠標(biāo)功能增強(qiáng)軟件所認(rèn)可的某種形式,這時(shí)將導(dǎo)致錯(cuò)誤觸發(fā)快捷功能的情況。由于軟件無(wú)法判別有意識(shí)的指針軌跡與無(wú)意識(shí)的指針軌跡,常常會(huì)有不該觸發(fā)快捷功能的時(shí)候觸發(fā)了快捷功能的情況發(fā)生,給用戶的操作使用帶來(lái)了混亂。并且由于軟件在不斷地記錄鼠標(biāo)指針的軌跡并對(duì)其進(jìn)行分析,所以該軟件的運(yùn)行會(huì)占用較多的計(jì)算機(jī)資源。
第三種方案為鼠標(biāo)功能增強(qiáng)軟件收到右鍵被按下的消息后,開始記錄鼠標(biāo)指針軌跡,當(dāng)軟件收到右鍵被松開的消息時(shí)則停止鼠標(biāo)指針軌跡的記錄并對(duì)其進(jìn)行分析判斷,最后軟件根據(jù)軌跡的形式發(fā)出匹配的快捷指令。相對(duì)而言,該方案對(duì)于鼠標(biāo)功能的增強(qiáng)作用較為有效。由于只記錄分析右鍵被按下時(shí)的鼠標(biāo)軌跡,所以軟件只占用少量的系統(tǒng)資源,也不會(huì)發(fā)生錯(cuò)誤觸發(fā)快捷功能的情況。而且操作簡(jiǎn)單,只需用戶按住右鍵短距離地輕甩一下鼠標(biāo)即可,不必去做視線定位和移動(dòng)指針到特定位置這樣精準(zhǔn)的動(dòng)作。該方案對(duì)于單一指令的發(fā)出是十分有效的,但對(duì)于象卷動(dòng)窗口這樣需要連續(xù)快速群發(fā)某一指令的操作幾乎是無(wú)能為力的,因?yàn)椴豢赡芤笥脩暨B續(xù)快速不斷地重復(fù)進(jìn)行幾十次同樣的操作。因而該方案從根本上說(shuō)仍不能滿足用戶的需要。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種方法,能夠在不增加現(xiàn)有滾輪鼠標(biāo)按鍵與滾輪數(shù)量的前提下大幅增加鼠標(biāo)滾輪所能快捷實(shí)現(xiàn)的常用指令的種類。
為達(dá)到上述第一個(gè)目的,本發(fā)明采用如下方案使軟件具備一種響應(yīng)鼠標(biāo)事件消息的特殊流程,當(dāng)用戶對(duì)滾輪鼠標(biāo)進(jìn)行鍵輪聯(lián)動(dòng)操作的過(guò)程中,計(jì)算機(jī)軟件通過(guò)執(zhí)行該流程能夠?qū)τ脩舻逆I輪聯(lián)動(dòng)過(guò)程中所引發(fā)的鼠標(biāo)事件的消息進(jìn)行邏輯判斷并做出適當(dāng)?shù)捻憫?yīng)。這個(gè)流程(如圖5~圖6所示)包括如下步驟(a)軟件等待MouseDown事件消息,繼續(xù)步驟(b);(b)軟件收到關(guān)于鼠標(biāo)α按鍵的MouseDown事件消息,繼續(xù)步驟(c);(c)軟件開始記錄鼠標(biāo)指針的軌跡并根據(jù)步驟(b)中所收到的MouseDown事件消息的形式做出與之相匹配的A類鍵輪聯(lián)動(dòng)響應(yīng),繼續(xù)步驟(d);(d)軟件收到關(guān)于鼠標(biāo)α按鍵的MouseUp事件消息或關(guān)于β滾輪的MouseWheel事件消息,繼續(xù)步驟(e);(e)軟件停止記錄鼠標(biāo)指針的軌跡并判斷步驟(d)中所收到鼠標(biāo)事件消息的類型,當(dāng)為MouseUp事件消息時(shí),繼續(xù)步驟(f);當(dāng)為MouseWheel事件消息時(shí),繼續(xù)步驟(g);(f)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式和步驟(d)中所收到的MouseDown事件消息的形式做出與之相匹配的響應(yīng),回到步驟(a);(g)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式、步驟(b)中所收到的MouseDown事件消息的形式和步驟(d)中所收到的MouseWheel事件消息的形式做出與之相匹配的B類鍵輪聯(lián)動(dòng)響應(yīng),繼續(xù)步驟(h);(h)軟件收到關(guān)于鼠標(biāo)α按鍵的MouseUp事件消息或關(guān)于β滾輪的MouseWheel事件消息,繼續(xù)步驟(i)(i)軟件判斷步驟(h)中所收到鼠標(biāo)事件消息的類型,當(dāng)為MouseUp事件消息時(shí),繼續(xù)步驟(m);當(dāng)為MouseWheel事件消息時(shí),繼續(xù)步驟(j);(j)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式、步驟(b)中所收到的MouseDown事件消息的形式和最新收到的關(guān)于鼠標(biāo)β滾輪的MouseWheel事件消息的形式做出與之相匹配的C類鍵輪聯(lián)動(dòng)響應(yīng),繼續(xù)步驟(k);(k)軟件收到關(guān)于鼠標(biāo)α按鍵的MouseUp事件消息或關(guān)于β滾輪的MouseWheel事件消息,繼續(xù)步驟(1);(l)軟件判斷步驟(k)中所收到鼠標(biāo)事件消息的類型,當(dāng)為MouseUp事件消息時(shí),繼續(xù)步驟(m);當(dāng)為MouseWheel事件消息時(shí),回到步驟(j);(m)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式、步驟(b)中所收到的MouseDown事件消息的形式和步驟(d)中所收到的MouseWheel事件消息的形式做出與之相匹配的D類鍵輪聯(lián)動(dòng)響應(yīng),回到步驟(a);所謂的滾輪鼠標(biāo)應(yīng)至少具備一只能夠被用戶轉(zhuǎn)動(dòng)的滾輪。
α按鍵為鼠標(biāo)的任意一只按鍵。
β滾輪為鼠標(biāo)的任意一只滾輪。
當(dāng)按鍵或滾輪被用戶按下時(shí),則觸發(fā)MouseDown事件消息;當(dāng)處于按下狀態(tài)的按鍵或滾輪被用戶松開時(shí),則觸發(fā)MouseUp事件消息;當(dāng)滾輪被用戶轉(zhuǎn)動(dòng)時(shí),則觸發(fā)MouseWheel事件消息。
所謂的鍵輪聯(lián)動(dòng)操作,其過(guò)程分為四步,即第一步為用戶將某一鼠標(biāo)按鍵按下,第二步為用戶移動(dòng)或不移動(dòng)鼠標(biāo)指針,第三步為用戶轉(zhuǎn)動(dòng)鼠標(biāo)滾輪一下或多下,第四步為用戶將第一步中按下的按鍵松開。
步驟(c)、步驟(g)、步驟(j)和步驟(m)所述的鍵輪聯(lián)動(dòng)響應(yīng)可以為軟件自身做出對(duì)應(yīng)的動(dòng)作、軟件向其他軟件發(fā)出對(duì)應(yīng)的指令或軟件不作任何動(dòng)作。
以上各步驟中所述軟件可以為鼠標(biāo)驅(qū)動(dòng)程序、鼠標(biāo)功能增強(qiáng)軟件或普通應(yīng)用軟件。
采用以上方法所產(chǎn)生的有益效果主要包括以下幾個(gè)方面①可以使用戶通過(guò)轉(zhuǎn)動(dòng)滾輪的方式方便地實(shí)現(xiàn)各種需要連續(xù)快速群發(fā)某一指令的快捷功能。這些功能包括水平卷動(dòng)頁(yè)面、垂直整屏卷動(dòng)頁(yè)面,調(diào)節(jié)音量大小、放大縮小頁(yè)面顯示比例等,這些功能對(duì)于計(jì)算機(jī)用戶而言既是常用的也是迫切需要的。
②由于用戶至少可以拖動(dòng)鼠標(biāo)產(chǎn)生9種易于被軟件識(shí)別的鼠標(biāo)指針軌跡形式,所以若將其用于鍵輪聯(lián)動(dòng)操作的話則可以實(shí)現(xiàn)9種以上的快捷功能。換句話說(shuō),相當(dāng)于為鼠標(biāo)新增加了9只滾輪。因而本發(fā)明所闡述的方法大幅擴(kuò)充、增強(qiáng)了鼠標(biāo)滾輪的功能,有效滿足了用戶對(duì)滾輪功能的需求。
③用戶進(jìn)行鍵輪聯(lián)動(dòng)操作的動(dòng)作過(guò)程連貫快捷、簡(jiǎn)便易行。用戶僅需單手做出像按動(dòng)按鍵、小幅度拖動(dòng)鼠標(biāo)、轉(zhuǎn)動(dòng)滾輪這樣輕微的動(dòng)作,取代了過(guò)去移動(dòng)視線搜尋圖標(biāo)、移動(dòng)指針到圖標(biāo)上,連續(xù)多次點(diǎn)擊圖標(biāo)這樣需要集中精力、重復(fù)繁瑣的動(dòng)作,有效減輕了用戶的疲勞。
④完全兼容了用戶原有的鼠標(biāo)操作方式,不改變用戶的使用習(xí)慣。本發(fā)明所闡述的方法兼容的原有操作方式包括左\右鍵及滾輪的單擊\雙擊,左鍵的拖放、轉(zhuǎn)動(dòng)滾輪、移動(dòng)指針等普通鼠標(biāo)操作以及前述目前公知鼠標(biāo)功能增強(qiáng)軟件所采用的三種方案。本發(fā)明所闡述的方法不但兼容了上述原有鼠標(biāo)操作方式,而且即使用戶將鍵輪聯(lián)動(dòng)操作與這些原有鼠標(biāo)操作混合使用也不會(huì)發(fā)生任何沖突,更不會(huì)發(fā)生錯(cuò)誤觸發(fā)快捷功能的現(xiàn)象。所以本發(fā)明在不改變用戶原有操作習(xí)慣的前提下,采用軟件的方法支持了一種新的操作方式(即鍵輪聯(lián)動(dòng)操作),達(dá)到了為用戶新增了大量快捷功能的目的。
圖1是第一種目前公知的滾輪鼠標(biāo)的外型構(gòu)造。
圖2是第二種目前公知的滾輪鼠標(biāo)的外型構(gòu)造。
圖3是第三種目前公知的滾輪鼠標(biāo)的外型構(gòu)造。
圖4是在目前公知的鼠標(biāo)功能增強(qiáng)軟件所采用的第一種功能增強(qiáng)方案中,當(dāng)用戶按下并松開設(shè)定的按鍵后顯示的窗口。
圖5、圖6是本發(fā)明所述的軟件響應(yīng)鼠標(biāo)事件消息的流程圖。
圖7、圖8是第一個(gè)實(shí)施例所述的鼠標(biāo)功能增強(qiáng)軟件響應(yīng)鼠標(biāo)事件消息的流程圖。
圖9是第一個(gè)實(shí)施例中步驟(c)中顯示的用以提示用戶各種指針軌跡所匹配的鍵輪聯(lián)動(dòng)響應(yīng)的窗口。
圖10是第一個(gè)實(shí)施例用以分辨鼠標(biāo)軌跡的區(qū)域分布圖。
圖11是第一個(gè)實(shí)施例的鼠標(biāo)功能增強(qiáng)軟件響應(yīng)鼠標(biāo)事件消息列表。
圖1中,1.右鍵,2.滾輪,3.左鍵;圖2中,1.右鍵,2.第一只滾輪,3.第二只滾輪,4.左鍵;圖3中,1.右鍵,2.第一只附加按鍵,3.滾輪,4.第二只附加按鍵,5.第三只附加按鍵,6.左鍵,7.第四只附加按鍵,8.第五只附加按鍵;圖9中,40.用以提示用戶各種指針軌跡所匹配的鍵輪聯(lián)動(dòng)響應(yīng)的窗口;圖10中,10.中心點(diǎn),20.區(qū)域(20),31.區(qū)域(31)、32.區(qū)域(32)、33.區(qū)域(33)、34.區(qū)域(34)、35.區(qū)域(35)、36.區(qū)域(36)、37.區(qū)域(37)、38.區(qū)域(38);具體實(shí)施方式
下面通過(guò)一具體實(shí)施例結(jié)合附圖對(duì)發(fā)明進(jìn)行詳細(xì)描述。該實(shí)施例為在一鼠標(biāo)功能增強(qiáng)軟件中通過(guò)采用本發(fā)明所述方法以達(dá)到大量增強(qiáng)單滾輪鼠標(biāo)快捷功能數(shù)量的目的。這個(gè)流程(如圖5~圖6所示)包括如下步驟
(a)軟件等待MouseDown事件消息,繼續(xù)步驟(b)(b)軟件收到關(guān)于鼠標(biāo)右鍵的MouseDown事件消息,繼續(xù)步驟(c);(c)軟件開始記錄鼠標(biāo)指針的軌跡并顯示如圖9所示的一窗口(40)用以提示用戶各種指針軌跡所匹配的鍵輪聯(lián)動(dòng)響應(yīng),繼續(xù)步驟(d);(d)軟件收到關(guān)于鼠標(biāo)右鍵的MouseUp事件消息或關(guān)于滾輪的MouseWheel事件消息,繼續(xù)步驟(e);(e)軟件停止記錄鼠標(biāo)指針的軌跡并判斷步驟(d)中所收到鼠標(biāo)事件消息的類型,當(dāng)為MouseUp事件消息時(shí),繼續(xù)步驟(f);當(dāng)為MouseWheel事件消息時(shí),繼續(xù)步驟(g);(f)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式做出與之相匹配的響應(yīng),回到步驟(a);(g)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式和步驟(d)中所收到的MouseWheel事件消息的形式做出與之相匹配的B類鍵輪聯(lián)動(dòng)響應(yīng),繼續(xù)步驟(h);(h)軟件收到關(guān)于鼠標(biāo)右鍵的MouseUp事件消息或關(guān)于滾輪的MouseWheel事件消息,繼續(xù)步驟(i)(i)軟件判斷步驟(h)中所收到鼠標(biāo)事件消息的類型,當(dāng)為MouseUp事件消息時(shí),繼續(xù)步驟(m);當(dāng)為MouseWheel事件消息時(shí),繼續(xù)步驟(j);(j)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式和最新收到的關(guān)于鼠標(biāo)滾輪的MouseWheel事件消息的形式做出與之相匹配的C類鍵輪聯(lián)動(dòng)響應(yīng),繼續(xù)步驟(k);(k)軟件收到關(guān)于鼠標(biāo)右鍵的MouseUp事件消息或關(guān)于滾輪的MouseWheel事件消息,繼續(xù)步驟(1);(1)軟件判斷步驟(k)中所收到鼠標(biāo)事件消息的類型,當(dāng)為MouseUp事件消息時(shí),繼續(xù)步驟(m);當(dāng)為MouseWheel事件消息時(shí),回到步驟(j);(m)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式和步驟(d)中所收到的MouseWheel事件消息的形式做出與之相匹配的D類鍵輪聯(lián)動(dòng)響應(yīng),回到步驟(a);在本實(shí)施例的鼠標(biāo)功能增強(qiáng)軟件中,在顯示屏幕上(如圖10所示),以右鍵被按下時(shí)鼠標(biāo)指針的位置為中心點(diǎn)(10)。以中心點(diǎn)(10)為圓心,半徑為30個(gè)象素的圓所圍成的區(qū)域?yàn)閰^(qū)域(20)。將區(qū)域(20)以外的區(qū)域每隔45°分成8個(gè)部分,即區(qū)域(31)、(32)、(33)、(34)、(35)、(36)、(37)、(38)。當(dāng)右鍵松開時(shí),如果指針的位置在區(qū)域(20)內(nèi),則其軌跡形式為不動(dòng);當(dāng)右鍵松開時(shí),如果指針的位置在區(qū)域(31)、(32)、(33)、(34)、(35)、(36)、(37)、(38)內(nèi),則其對(duì)應(yīng)軌跡形式分別為向上、右上、向右、右下、向下、左下、向左、左上;根據(jù)鼠標(biāo)指針的軌跡形式和滾輪轉(zhuǎn)動(dòng)的方向,鼠標(biāo)功能增強(qiáng)軟件在各步驟中做出的響應(yīng)如圖11所示。
在本實(shí)施例的鼠標(biāo)功能增強(qiáng)軟件中,對(duì)應(yīng)于圖11所示的表格,例如
X1響應(yīng)為關(guān)閉步驟(c)中顯示的窗口(40)并向前臺(tái)窗口先后發(fā)送關(guān)于鼠標(biāo)右鍵的MouseDown與MouseUp事件消息。
X2響應(yīng)為關(guān)閉步驟(c)中顯示的窗口(40)并向前臺(tái)窗口發(fā)送“<Ctrl>+<Home>”鍵盤指令(即將光標(biāo)移動(dòng)到頁(yè)面的最始端)。
對(duì)應(yīng)于向前轉(zhuǎn)動(dòng)滾輪的Ba1響應(yīng)為關(guān)閉步驟(c)中顯示的窗口(40)并向前臺(tái)窗口先后發(fā)送“頁(yè)面向左卷動(dòng)若干個(gè)卷動(dòng)單位”的指令。
對(duì)應(yīng)于向后轉(zhuǎn)動(dòng)滾輪的Bb1響應(yīng)為關(guān)閉步驟(c)中顯示的窗口(40)并向前臺(tái)窗口先后發(fā)送“頁(yè)面向右卷動(dòng)若干個(gè)卷動(dòng)單位”的指令。
對(duì)應(yīng)于向前轉(zhuǎn)動(dòng)滾輪的Ca1響應(yīng)為向前臺(tái)窗口先后發(fā)送“頁(yè)面向左卷動(dòng)若干個(gè)卷動(dòng)單位”的指令。
對(duì)應(yīng)于向后轉(zhuǎn)動(dòng)滾輪的Cb1響應(yīng)為向前臺(tái)窗口先后發(fā)送“頁(yè)面向右卷動(dòng)若干個(gè)卷動(dòng)單位”的指令。
D1響應(yīng)為不做任何動(dòng)作。
當(dāng)用戶按下鼠標(biāo)右鍵后不移動(dòng)指針,然后立即松開右鍵。則當(dāng)右鍵被按下時(shí)會(huì)顯示窗口(40);當(dāng)右鍵被松開時(shí)窗口(40)被關(guān)閉,同時(shí)前臺(tái)窗口先后接到鼠標(biāo)功能增強(qiáng)軟件發(fā)送的關(guān)于鼠標(biāo)右鍵的MouseDown與MouseUp事件消息做出右鍵單擊響應(yīng)(通常為彈出一個(gè)快捷菜單)。由此可見(jiàn),這項(xiàng)功能實(shí)際上是兼容了普通的右鍵單擊操作。
當(dāng)用戶按下鼠標(biāo)右鍵后向上移動(dòng)指針至區(qū)域(31)中,然后松開右鍵。則當(dāng)右鍵被按下時(shí)會(huì)顯示窗口(40);當(dāng)右鍵被松開時(shí)窗口(40)被關(guān)閉,同時(shí)前臺(tái)窗口接到鼠標(biāo)功能增強(qiáng)軟件發(fā)送的“<Ctrl>+<Home>”鍵盤指令而將光標(biāo)移動(dòng)到頁(yè)面的最始端。由此可見(jiàn),這項(xiàng)功能實(shí)際上是兼容了前述目前公知鼠標(biāo)功能增強(qiáng)軟件所采用的第三種方案。
當(dāng)用戶按下鼠標(biāo)右鍵后不移動(dòng)指針,然后轉(zhuǎn)動(dòng)滾輪,最后松開右鍵。則當(dāng)右鍵被按下時(shí)會(huì)顯示窗口(40);當(dāng)滾輪被向前/后轉(zhuǎn)動(dòng)第一格時(shí),窗口(40)被關(guān)閉,同時(shí)前臺(tái)窗口接到鼠標(biāo)功能增強(qiáng)軟件發(fā)送的的指令而將頁(yè)面向左/右卷動(dòng)若干個(gè)卷動(dòng)單位;若繼續(xù)轉(zhuǎn)動(dòng)滾輪則頁(yè)面會(huì)繼續(xù)隨滾輪進(jìn)行水平卷動(dòng);當(dāng)右鍵被松開時(shí)鼠標(biāo)功能增強(qiáng)軟件不作任何動(dòng)作。此項(xiàng)功能正是本發(fā)明所關(guān)注的內(nèi)容,類似的,對(duì)應(yīng)于其他指針軌跡與轉(zhuǎn)動(dòng)滾輪的組合還可以快捷地實(shí)現(xiàn)垂直整屏卷動(dòng)頁(yè)面,調(diào)節(jié)音量大小、放大縮小頁(yè)面顯示比例等常用功能。
上述僅為本發(fā)明的較佳實(shí)施例而已,并非用以限定本發(fā)明,任何熟悉此技術(shù)領(lǐng)域的人士在不脫離本發(fā)明的精神構(gòu)思情況下做成的各種更動(dòng)仍應(yīng)屬于本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種增強(qiáng)鼠標(biāo)滾輪功能的方法,使軟件具備一種響應(yīng)鼠標(biāo)事件消息的流程,該流程包括如下步驟(a)軟件等待MouseDown事件消息,繼續(xù)步驟(b)(b)軟件收到關(guān)于鼠標(biāo)α按鍵的MouseDown事件消息,繼續(xù)步驟(c);(c)軟件開始記錄鼠標(biāo)指針的軌跡并根據(jù)步驟(b)中所收到的MouseDown事件消息的形式作出與之相匹配的A類鍵輪聯(lián)動(dòng)響應(yīng),繼續(xù)步驟(d);(d)軟件收到關(guān)于鼠標(biāo)α按鍵的MouseUp事件消息或關(guān)于β滾輪的MouseWheel事件消息,繼續(xù)步驟(e);(e)軟件停止記錄鼠標(biāo)指針的軌跡并判斷步驟(d)中所收到鼠標(biāo)事件消息的類型,當(dāng)為MouseUp事件消息時(shí),繼續(xù)步驟(f);當(dāng)為MouseWheel事件消息時(shí),繼續(xù)步驟(g);(f)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式和步驟(d)中所收到的MouseDown事件消息的形式作出與之相匹配的響應(yīng),回到步驟(a);(g)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式、步驟(b)中所收到的MouseDown事件消息的形式和步驟(d)中所收到的MouseWheel事件消息的形式作出與之相匹配的B類鍵輪聯(lián)動(dòng)響應(yīng),繼續(xù)步驟(h);(h)軟件收到關(guān)于鼠標(biāo)α按鍵的MouseUp事件消息或關(guān)于β滾輪的MouseWheel事件消息,繼續(xù)步驟(i)(i)軟件判斷步驟(h)中所收到鼠標(biāo)事件消息的類型,當(dāng)為MouseUp事件消息時(shí),繼續(xù)步驟(m);當(dāng)為MouseWheel事件消息時(shí),繼續(xù)步驟(j);(j)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式、步驟(b)中所收到的MouseDown事件消息的形式和最新收到的關(guān)于鼠標(biāo)β滾輪的MouseWheel事件消息的形式作出與之相匹配的C類鍵輪聯(lián)動(dòng)響應(yīng),繼續(xù)步驟(k);(k)軟件收到關(guān)于鼠標(biāo)α按鍵的MouseUp事件消息或關(guān)于β滾輪的MouseWheel事件消息,繼續(xù)步驟(l);(l)軟件判斷步驟(k)中所收到鼠標(biāo)事件消息的類型,當(dāng)為MouseUp事件消息時(shí),繼續(xù)步驟(m);當(dāng)為MouseWheel事件消息時(shí),回到步驟(j);(m)軟件根據(jù)步驟(c)中所記錄的指針軌跡的形式、步驟(b)中所收到的MouseDown事件消息的形式和步驟(d)中所收到的MouseWheel事件消息的形式作出與之相匹配的D類鍵輪聯(lián)動(dòng)響應(yīng),回到步驟(a);
2.根據(jù)權(quán)利要求1所述的一種增強(qiáng)鼠標(biāo)滾輪功能的方法,其特征是所述滾輪鼠標(biāo)應(yīng)至少具備一只能夠被用戶轉(zhuǎn)動(dòng)的滾輪。
3.根據(jù)權(quán)利要求1所述的一種增強(qiáng)鼠標(biāo)滾輪功能的方法,其特征是α按鍵為鼠標(biāo)的任意一只按鍵。
4.根據(jù)權(quán)利要求1所述的一種增強(qiáng)鼠標(biāo)滾輪功能的方法,其特征是β滾輪為鼠標(biāo)的任意一只滾輪。
5.根據(jù)權(quán)利要求1所述的一種增強(qiáng)鼠標(biāo)滾輪功能的方法,其特征是當(dāng)按鍵或滾輪被用戶按下時(shí),則觸發(fā)MouseDown事件消息;當(dāng)處于按下狀態(tài)的按鍵或滾輪被用戶松開時(shí),則觸發(fā)MouseUp事件消息;當(dāng)滾輪被用戶轉(zhuǎn)動(dòng)時(shí),則觸發(fā)MouseWheel事件消息。
6.根據(jù)權(quán)利要求1所述的一種增強(qiáng)鼠標(biāo)滾輪功能的方法,其特征是所述鍵輪聯(lián)動(dòng)操作,其過(guò)程分為四步,即第一步為用戶將某一鼠標(biāo)按鍵按下,第二步為用戶移動(dòng)或不移動(dòng)鼠標(biāo)指針,第三步為用戶轉(zhuǎn)動(dòng)鼠標(biāo)滾輪一下或多下,第四步為用戶將第一步中按下的按鍵松開。
7.根據(jù)權(quán)利要求1所述的一種增強(qiáng)鼠標(biāo)滾輪功能的方法,其特征是步驟(c)、步驟(g)、步驟(j)和步驟(m)所述的鍵輪聯(lián)動(dòng)響應(yīng)可以為軟件自身作出對(duì)應(yīng)的動(dòng)作、軟件向其他軟件發(fā)出對(duì)應(yīng)的指令或軟件不作任何動(dòng)作。
8.根據(jù)權(quán)利要求1所述的一種增強(qiáng)鼠標(biāo)滾輪功能的方法,其特征是所述軟件可以為鼠標(biāo)驅(qū)動(dòng)程序、鼠標(biāo)功能增強(qiáng)軟件或普通應(yīng)用軟件。
全文摘要
一種增強(qiáng)鼠標(biāo)滾輪功能的方法。該方法采用如下方案當(dāng)用戶對(duì)滾輪鼠標(biāo)進(jìn)行鍵輪聯(lián)動(dòng)操作(第一步為用戶將某一鼠標(biāo)按鍵按下,第二步為用戶移動(dòng)或不移動(dòng)鼠標(biāo)指針,第三步為用戶轉(zhuǎn)動(dòng)鼠標(biāo)滾輪一下或多下,第四步為用戶將第一步中按下的按鍵松開)的過(guò)程中,軟件能夠執(zhí)行一個(gè)流程,通過(guò)該流程軟件能夠?qū)τ脩舻逆I輪聯(lián)動(dòng)過(guò)程中所引發(fā)的鼠標(biāo)事件的消息進(jìn)行邏輯判斷并做出適當(dāng)?shù)捻憫?yīng)。本發(fā)明在不增加現(xiàn)有滾輪鼠標(biāo)按鍵與滾輪數(shù)量并且操作便捷的前提下大幅增加了鼠標(biāo)滾輪所能快捷實(shí)現(xiàn)的常用指令的種類,尤其適于增加像水平卷動(dòng)頁(yè)面這樣需要連續(xù)快速群發(fā)某一指令的快捷功能。其功能之強(qiáng)相當(dāng)于為鼠標(biāo)新增數(shù)只滾輪。
文檔編號(hào)G06F13/10GK1560747SQ200410005749
公開日2005年1月5日 申請(qǐng)日期2004年2月24日 優(yōu)先權(quán)日2004年2月24日
發(fā)明者于皓, 于 皓 申請(qǐng)人:于皓, 于 皓