專利名稱:一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用處理技術(shù),尤其涉及一種能夠在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置和方法。
背景技術(shù):
現(xiàn)在計(jì)算機(jī)應(yīng)用處理技術(shù)中,大部分軟件利用鼠標(biāo)作為用戶輸入的主要手段,但是由于 硬件的限制和其他的原因, 一個(gè)應(yīng)用軟件只能使用系統(tǒng)的一個(gè)鼠標(biāo)。
在很多軟件中都存在著一份文檔可對應(yīng)多個(gè)視圖顯示的功能,這些視圖從各自的角度反 映了文檔的數(shù)據(jù)。每一個(gè)視圖都可以用來操作文檔的數(shù)據(jù),而在一個(gè)視圖上操作對文檔的改 變,通常會(huì)反映到其他的視圖上,這種反應(yīng)有時(shí)是即時(shí)的,有時(shí)是非即時(shí)的。例如在幻燈片 播放軟件中,有一類功能被稱作雙屏擴(kuò)展模式,意思就是指系統(tǒng)將兩個(gè)顯示器合并為一整個(gè) 大的顯示區(qū)域,不同的顯示器只顯示這個(gè)大區(qū)域的一部分,系統(tǒng)可以在這兩個(gè)顯示器上顯示 不同的內(nèi)容,該功能必須在硬件上有兩個(gè)顯示器的時(shí)候才可以使用,其中的一個(gè)顯示器是觀 眾可以看見的,通常是投影儀,軟件在觀眾所觀看的顯示器上的顯示區(qū)域叫做觀眾視圖。另 外的一個(gè)視圖由演講者控制,演講者可以控制幻燈片的播放進(jìn)程,我們將其叫做演講者視圖。 觀眾視圖和演講者視圖顯示的是相關(guān)但不完全相同的內(nèi)容,這樣做的好處是,演講者可以做 某些操作,而這些操作又不必讓觀眾看到。通常這樣的需求發(fā)生在演講者需要臨時(shí)查看即將 演講的內(nèi)容,或者査看剛才提問的答案的時(shí)候,這些信息通常不希望被觀眾看到,或者這些 信息可能并沒有放在正在播放的文檔中,而是放在其他軟件才可以査看的文件中,比如word, excel等等。
將演講者視圖和觀眾視圖分開有好處,同時(shí)也有壞處。好處是演講者對觀眾可以屏蔽掉 不必看到的東西;壞處是當(dāng)演講者需要給觀眾講解演講稿上的某些內(nèi)容,而講解這些內(nèi)容又 與講稿上的位置相關(guān)的時(shí)候,演講者實(shí)際上需要一個(gè)類似教鞭的東西來指示觀眾視圖上他想 講解的地方。通常在非雙屏擴(kuò)展模式情況下,演講者可以用鼠標(biāo)指針來提示觀眾他現(xiàn)在需要 講解的位置,因?yàn)樵诜请p屏擴(kuò)展模式下,系統(tǒng)工作在屏幕拷貝的模式下, 一個(gè)屏幕上面顯示 的任何內(nèi)容都和另外的一個(gè)屏幕顯示的一樣。但是在雙屏擴(kuò)展模式中就不可能做到這樣一點(diǎn), 雙屏擴(kuò)展模式下系統(tǒng)工作在顯示器擴(kuò)展?fàn)顟B(tài)下,兩個(gè)顯示器實(shí)際上可以認(rèn)為僅僅有一個(gè),即 只是一個(gè)顯示桌面的整體,只是現(xiàn)在兩個(gè)顯示器分別顯示桌面的一部分,而觀眾視圖和演講者視圖分布在不同的窗口中。在正常情況下,演講者是面對觀眾,演講者視圖背對觀眾,而 演講者背對觀眾視圖,如果將鼠標(biāo)移動(dòng)到演講者視圖上面,觀眾不可能看到鼠標(biāo)的位置,而 如果移動(dòng)到觀眾視圖上面,演講者自己又看不到鼠標(biāo)。產(chǎn)生這個(gè)問題的原因在于鼠標(biāo)是一個(gè) 系統(tǒng)設(shè)備,而這樣設(shè)備是所有的軟件共享的,鼠標(biāo)指針僅僅有一個(gè),而現(xiàn)在需要同時(shí)顯示兩 個(gè)鼠標(biāo), 一個(gè)顯示給觀眾看,另外一個(gè)需要顯示給演講者自己,如果不模擬鼠標(biāo)的話,是不 可能同時(shí)滿足這兩點(diǎn)要求的。對于多屏擴(kuò)展模式下,情況也類似。
發(fā)明內(nèi)容
為了克服現(xiàn)有的計(jì)算機(jī)應(yīng)用處理技術(shù)中解決雙屏擴(kuò)展模式下各視圖都需要鼠標(biāo)指示的技 術(shù)方案的不足,本發(fā)明的目的在于提供一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置和方法,使得 應(yīng)用軟件可以在需要的時(shí)候使用任意多個(gè)鼠標(biāo)來指示用戶的輸入,本發(fā)明的鼠標(biāo)模擬的解決 方案,不僅可以用在播放軟件的雙屏鼠標(biāo)模擬中,實(shí)際上它滿足了任何需要在不同屏幕區(qū)域 同時(shí)顯示鼠標(biāo)的需求。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是-
一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置,包括有計(jì)算機(jī)鼠標(biāo)和應(yīng)用軟件,所述應(yīng)用軟件包
括
窗口管理系統(tǒng)作為運(yùn)行支持圖形用戶界面的操作系統(tǒng)下的應(yīng)用軟件的基本控制模塊,
是對操作系統(tǒng)已經(jīng)提供的窗口管理功能的包裝和擴(kuò)充,主要處理操作系統(tǒng)向應(yīng)用軟件發(fā)送的 與窗口管理相關(guān)的消息;
文檔繪制系統(tǒng)用以將軟件的邏輯數(shù)據(jù),轉(zhuǎn)化為人可以理解的圖形和圖像的模塊,通過 調(diào)用操作系統(tǒng)的圖形繪制命令,將應(yīng)用軟件數(shù)據(jù)轉(zhuǎn)化為文字圖像,各種圖形或表格,應(yīng)用軟 件中的其他模塊通過調(diào)用文檔繪制系統(tǒng)中的服務(wù)將自己的數(shù)據(jù)轉(zhuǎn)化為軟件使用者容易理解的 圖像顯示在應(yīng)用軟件的窗口中;
所述在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置還包括有模擬鼠標(biāo)系統(tǒng),所述模擬鼠標(biāo)系統(tǒng)包括有
主裝置用以管理應(yīng)用軟件對鼠標(biāo)模擬的請求,并且負(fù)責(zé)管理各個(gè)視圖鼠標(biāo)模擬子裝置 的創(chuàng)建、銷毀和它們之間的協(xié)同運(yùn)作;
視圖鼠標(biāo)模擬子裝置所述視圖鼠標(biāo)模擬子裝置用以將應(yīng)用軟件的鼠標(biāo)模擬任務(wù)劃分為 一個(gè)個(gè)具體的在應(yīng)用軟件的各個(gè)視圖上面進(jìn)行的鼠標(biāo)模擬子任務(wù),每個(gè)需要模擬的視圖都對 應(yīng)一個(gè)視圖鼠標(biāo)模擬子裝置;
所述主裝置是視圖鼠標(biāo)模擬子裝置和應(yīng)用軟件其他模塊之間交換數(shù)據(jù)的橋梁,同時(shí)負(fù)責(zé) 檢測當(dāng)前的系統(tǒng)鼠標(biāo)的狀態(tài)。所述視圖鼠標(biāo)模擬子裝置還包括有
鼠標(biāo)計(jì)算裝置用以收集視圖鼠標(biāo)模擬子裝置所對應(yīng)的視圖信息和原始鼠標(biāo)位置信息, 計(jì)算出模擬的鼠標(biāo)的位置、大小、形狀和其他參數(shù);
鼠標(biāo)繪制裝置用以根據(jù)鼠標(biāo)計(jì)算裝置的結(jié)果,調(diào)用文檔繪制系統(tǒng)服務(wù),將模擬的鼠標(biāo) 繪制出來。
一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其中,應(yīng)用軟件啟動(dòng)時(shí),同時(shí)啟動(dòng)窗口管理系統(tǒng), 打丌文檔,并啟動(dòng)文檔繪制系統(tǒng);
用戶給出指令,應(yīng)用程序判斷是否需要進(jìn)行鼠標(biāo)模擬;
當(dāng)應(yīng)用程序判斷需要啟動(dòng)鼠標(biāo)模擬主裝置時(shí),啟動(dòng)主裝置,并根據(jù)需要將數(shù)據(jù)傳遞到主 裝置;
主裝置收到數(shù)據(jù)后,保存該數(shù)據(jù),并且根據(jù)數(shù)據(jù)對每一個(gè)需要模擬鼠標(biāo)的視圖創(chuàng)建一個(gè) 或多個(gè)單視圖鼠標(biāo)模擬子裝置;
所述視圖鼠標(biāo)模擬子裝置將應(yīng)用軟件的鼠標(biāo)模擬任務(wù)劃分為一個(gè)個(gè)具體的在應(yīng)用軟件的 各個(gè)視圖上面進(jìn)行的鼠標(biāo)模擬子任務(wù),每個(gè)需要模擬的視圖都對應(yīng)一個(gè)視圖鼠標(biāo)模擬子裝置;
鼠標(biāo)計(jì)算裝置收集視圖鼠標(biāo)模擬子裝置所對應(yīng)的視圖信息和原始鼠標(biāo)位置信息,計(jì)算出 將要模擬的鼠標(biāo)的位置、大小、形狀和其他參數(shù);
鼠標(biāo)繪制裝置根據(jù)鼠標(biāo)計(jì)算裝置的結(jié)果,調(diào)用文檔繪制系統(tǒng)服務(wù),將模擬的鼠標(biāo)繪制出
來;
當(dāng)用戶給出指令,應(yīng)用程序判斷不需要進(jìn)行鼠標(biāo)模擬時(shí),應(yīng)用程序銷毀主裝置; 工作結(jié)束。
本發(fā)明的有益效果是采用本發(fā)明的一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置和方法,除了 包括有窗口管理系統(tǒng)和文檔繪制系統(tǒng)外,還設(shè)有用以管理應(yīng)用軟件對鼠標(biāo)模擬的請求,并且 負(fù)責(zé)管理各個(gè)視圖鼠標(biāo)模擬子裝置的創(chuàng)建、銷毀和它們之間的協(xié)同運(yùn)作的主裝置,所述主裝 置又包括有視圖鼠標(biāo)模擬子裝置,使得應(yīng)用軟件可以在需要的時(shí)候使用任意多個(gè)鼠標(biāo)來指示 用戶的輸入,不僅可以用在播放軟件的雙屏鼠標(biāo)模擬中,實(shí)際上它滿足了任何需要在不同屏 幕區(qū)域同時(shí)顯示鼠標(biāo)的需求。
圖1是本發(fā)明一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置的應(yīng)用軟件結(jié)構(gòu)示意圖2是本發(fā)明一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置的視圖鼠標(biāo)模擬子裝置的結(jié)構(gòu)示意圖3是本發(fā)明一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置的主裝置連接多個(gè)視圖鼠標(biāo)模擬子裝 置的結(jié)構(gòu)示意圖4是本發(fā)明一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置進(jìn)入雙屏擴(kuò)展模式播放狀態(tài)應(yīng)用中, 演講者視圖和觀眾視圖的示意圖5是本發(fā)明一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法的工作流程圖6是本發(fā)明一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法的主裝置執(zhí)行鼠標(biāo)模擬邏輯的工作流 程圖7是本發(fā)明一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法的初始化視圖鼠標(biāo)模擬子裝置的工作 流程圖8是本發(fā)明一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法的主裝置動(dòng)態(tài)檢測邏輯的工作流程
圖9是本發(fā)明一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法的繪制模擬鼠標(biāo)的工作流程圖io是本發(fā)明一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法的模擬鼠標(biāo)效果示意圖。
具體實(shí)施例方式
模擬鼠標(biāo)系統(tǒng)是在應(yīng)用軟件(如金山演示W(wǎng)PS Office Presentation)中的一部分,如果需 要用到多鼠標(biāo)指示的功能,將本系統(tǒng)以下面所示的方式嵌入應(yīng)用軟件系統(tǒng)中,應(yīng)用軟件定義 為在計(jì)算機(jī)系統(tǒng)上面運(yùn)行的帶窗口的軟件。
本發(fā)明中文檔定義為應(yīng)用軟件為了保存它所實(shí)現(xiàn)功能需要的數(shù)據(jù),在磁盤或內(nèi)存中組織 的數(shù)據(jù)結(jié)構(gòu)的集合,文檔不限于磁盤文件,任何有用的應(yīng)用軟件運(yùn)行時(shí)必定在操作它的文檔。
視圖定義為應(yīng)用軟件在窗口中的一個(gè)區(qū)域,該區(qū)域顯示了它的文檔內(nèi)容的一部分。
焦點(diǎn)視圖定義為系統(tǒng)鼠標(biāo)位置所指向的視圖。
模擬鼠標(biāo)定義為計(jì)算機(jī)系統(tǒng)上面的一塊可以用物理鼠標(biāo)來操控的圖像,它一般會(huì)隨著物 理鼠標(biāo)的移動(dòng)而移動(dòng),它用來指示視圖上的位置,并且它在移動(dòng)的時(shí)候象系統(tǒng)鼠標(biāo)那樣不能 破壞它所在的視圖的圖像。
模擬鼠標(biāo)活動(dòng)區(qū)域是視圖上的一個(gè)區(qū)域,當(dāng)系統(tǒng)鼠標(biāo)處于該區(qū)域的時(shí)候,希望模擬鼠標(biāo) 出現(xiàn)在本該系統(tǒng)鼠標(biāo)出現(xiàn)的地方,同時(shí)其他視圖上的鼠標(biāo)活動(dòng)區(qū)域?qū)?yīng)的地方出現(xiàn)模擬的鼠 標(biāo)。 一般將其定義為同視圖一樣的大小和位置。
鼠標(biāo)活動(dòng)區(qū)域是成比例的,當(dāng)系統(tǒng)鼠標(biāo)從焦點(diǎn)視圖的鼠標(biāo)模擬區(qū)域的一邊移動(dòng)到對邊的
時(shí)候,其他模擬鼠標(biāo)活動(dòng)區(qū)域上的模擬鼠標(biāo)也應(yīng)該從它們對應(yīng)的一邊移動(dòng)到對邊。
12應(yīng)用軟件啟動(dòng)的時(shí)候,有一個(gè)或者一個(gè)以上的窗口用來顯示它的文檔內(nèi)容。 當(dāng)用戶以某種方式(比如菜單、工具條、熱鍵等方式)執(zhí)行某個(gè)指令后,應(yīng)用軟件啟動(dòng)
主裝置。
當(dāng)系統(tǒng)的鼠標(biāo)處于應(yīng)用軟件某個(gè)模擬鼠標(biāo)活動(dòng)區(qū)域的時(shí)候,用戶至少看到了兩個(gè)鼠標(biāo), 而其中兩個(gè)鼠標(biāo)都出現(xiàn)在模擬視圖活動(dòng)區(qū)域內(nèi),并且至少有一個(gè)是模擬的鼠標(biāo)。
本發(fā)明所述的一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置,包括有計(jì)算機(jī)鼠標(biāo)和應(yīng)用軟件,所 述應(yīng)用軟件包括,如圖l所示
窗口管理系統(tǒng)作為運(yùn)行支持圖形用戶界面的操作系統(tǒng)下的應(yīng)用軟件的基本控制模塊, 是對操作系統(tǒng)已經(jīng)提供的窗口管理功能的包裝和擴(kuò)充,主要處理操作系統(tǒng)向應(yīng)用軟件發(fā)送的 與窗口管理相關(guān)的消息;操作系統(tǒng),例如Microsoft Windows系列、MacOS等,窗口管理系 統(tǒng)是操作系統(tǒng)下的應(yīng)用軟件的基本控制模塊,處理操作與窗口管理相關(guān)的消息,如窗口的創(chuàng) 建、移動(dòng)、大小改變、更新繪制、鼠標(biāo)移動(dòng)、鍵盤的動(dòng)作等等。
文檔繪制系統(tǒng)用以將軟件的邏輯數(shù)據(jù),轉(zhuǎn)化為人可以理解的圖形和圖像的模塊,通過
調(diào)用操作系統(tǒng)的圖形繪制命令,將應(yīng)用軟件數(shù)據(jù)轉(zhuǎn)化為文字圖像、各種圖形或表格,應(yīng)用軟 件中的其他模塊通過調(diào)用文檔繪制系統(tǒng)中的服務(wù)將自己的數(shù)據(jù)轉(zhuǎn)化為軟件使用者容易理解的
圖像顯示在應(yīng)用軟件的窗口中;
所述在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置還包括有模擬鼠標(biāo)系統(tǒng),所述模擬鼠標(biāo)系統(tǒng)包括有
主裝置用以管理應(yīng)用軟件對鼠標(biāo)模擬的請求,并且負(fù)責(zé)管理各個(gè)視圖鼠標(biāo)模擬子裝置 的創(chuàng)建、銷毀和它們之間的協(xié)同運(yùn)作;主裝置是應(yīng)用軟件中的一部分,是視圖鼠標(biāo)模擬子裝 置和應(yīng)用軟件其他模塊之間交換數(shù)據(jù)的橋梁,同時(shí)它還負(fù)責(zé)檢測當(dāng)前系統(tǒng)鼠標(biāo)的狀態(tài)。
視圖鼠標(biāo)模擬子裝置所述視圖鼠標(biāo)模擬子裝置用以將應(yīng)用軟件的鼠標(biāo)模擬任務(wù)劃分為 一個(gè)個(gè)具體的在應(yīng)用軟件的各個(gè)視圖上面進(jìn)行的鼠標(biāo)模擬子任務(wù),每個(gè)需要模擬的視圖都對 應(yīng)一個(gè)視圖鼠標(biāo)模擬子裝置;
在應(yīng)用軟件的各個(gè)視圖上面的鼠標(biāo)模擬子任務(wù),如金山WPS Presentation在雙屏擴(kuò)展模式 下播放,在繪制熒光筆的時(shí)候需要同時(shí)在演講者視圖和觀眾視圖上面模擬鼠標(biāo),每個(gè)需要模 擬的視圖都對應(yīng)一個(gè)視圖鼠標(biāo)模擬子裝置。
所述主裝置是視圖鼠標(biāo)模擬子裝置和應(yīng)用軟件其他模塊之間交換數(shù)據(jù)的橋梁,同時(shí)負(fù)責(zé) 檢測當(dāng)前的系統(tǒng)鼠標(biāo)的狀態(tài)。
如圖2所示,所述視圖鼠標(biāo)模擬子裝置還包括有
鼠標(biāo)計(jì)算裝置用以收集視圖鼠標(biāo)模擬子裝置所對應(yīng)的視圖信息和原始鼠標(biāo)位置信息,
計(jì)算出模擬的鼠標(biāo)的位置、大小、形狀和其他參數(shù);鼠標(biāo)繪制裝置用以根據(jù)鼠標(biāo)計(jì)算裝置的結(jié)果,調(diào)用文檔繪制系統(tǒng)服務(wù),將模擬的鼠標(biāo) 繪制出來。
如圖5所示, 一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其中,應(yīng)用軟件啟動(dòng)時(shí),同時(shí)啟動(dòng) 窗口管理系統(tǒng),打開文檔,并啟動(dòng)文檔繪制系統(tǒng);
用戶給出指令,應(yīng)用程序判斷是否需要進(jìn)行鼠標(biāo)模擬;
當(dāng)應(yīng)用程序判斷需要啟動(dòng)鼠標(biāo)模擬主裝置時(shí),啟動(dòng)主裝置,并根據(jù)需要將數(shù)據(jù)傳遞到主 裝置;
主裝置收到數(shù)據(jù)后,保存該數(shù)據(jù),并且根據(jù)數(shù)據(jù)對每一個(gè)需要模擬鼠標(biāo)的視圖創(chuàng)建一個(gè) 或多個(gè)單視圖鼠標(biāo)模擬子裝置;
所述視圖鼠標(biāo)模擬子裝置將應(yīng)用軟件的鼠標(biāo)模擬任務(wù)劃分為一個(gè)個(gè)具體的在應(yīng)用軟件的 各個(gè)視圖上面進(jìn)行的鼠標(biāo)模擬子任務(wù),每個(gè)需要模擬的視圖都對應(yīng)一個(gè)視圖鼠標(biāo)模擬子裝置;
鼠標(biāo)計(jì)算裝置收集視圖鼠標(biāo)模擬子裝置所對應(yīng)的視圖信息和原始鼠標(biāo)位置信息,計(jì)算出 將要模擬的鼠標(biāo)的位置、大小、形狀和其他參數(shù);
鼠標(biāo)繪制裝置根據(jù)鼠標(biāo)計(jì)算裝置的結(jié)果,調(diào)用文檔繪制系統(tǒng)服務(wù),將模擬的鼠標(biāo)繪制出
來;
當(dāng)用戶給出指令,應(yīng)用程序判斷不需要進(jìn)行鼠標(biāo)模擬時(shí),應(yīng)用程序銷毀主裝置; 工作結(jié)束。
如圖6所示, 一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其中,主裝置執(zhí)行鼠標(biāo)模擬邏輯的 工作步驟為
歩驟一主裝置邏輯開始;
步驟二根據(jù)需要?jiǎng)?chuàng)建視圖鼠標(biāo)模擬子裝置;
歩驟三初始化視圖鼠標(biāo)模擬子裝置;
歩驟四計(jì)算當(dāng)前系統(tǒng)鼠標(biāo)是否處于某個(gè)視圖區(qū)域內(nèi),如是,進(jìn)入歩驟五,如否,進(jìn)入 歩驟七;
歩驟五隱藏系統(tǒng)鼠標(biāo); 步驟六繪制出模擬鼠標(biāo); 歩驟七主裝置動(dòng)態(tài)檢測邏輯。
如圖7所示, 一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其中,初始化視圖鼠標(biāo)模擬子裝置 的工作步驟為歩驟一初始化視圖鼠標(biāo)模擬子裝置開始; 歩驟二創(chuàng)建鼠標(biāo)計(jì)算子裝置初始化; 步驟三創(chuàng)建鼠標(biāo)繪制裝置;
歩驟四計(jì)算鼠標(biāo)與視圖相對位置傳遞給主裝置; 歩驟五初始化結(jié)束。
如圖8所示, 一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其中,主裝置動(dòng)態(tài)檢測邏輯的工作 步驟為
歩驟一主裝置動(dòng)態(tài)檢測邏輯開始;
步驟二檢測鼠標(biāo)移動(dòng)和視圖改變事件,如發(fā)生鼠標(biāo)移動(dòng),進(jìn)入步驟四,如發(fā)生視圖縮 放,進(jìn)入步驟三;
步驟三通知視圖鼠標(biāo)模擬子裝置改變視圖大小,進(jìn)入步驟六; 歩驟四通知視圖鼠標(biāo)模擬子裝置鼠標(biāo)相對位置改變信息;
步驟五計(jì)算當(dāng)前系統(tǒng)鼠標(biāo)是否處于某個(gè)視圖區(qū)域內(nèi),如是,進(jìn)入步驟六;如否,進(jìn)入 步驟九;
步驟六擦除模擬的鼠標(biāo),進(jìn)入步驟七; 歩驟七隱藏系統(tǒng)鼠標(biāo); 步驟八繪制出模擬鼠標(biāo),進(jìn)入步驟一; 歩驟九擦除模擬的鼠標(biāo),進(jìn)入步驟一。
如圖9所示, 一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其中,繪制模擬鼠標(biāo)的工作歩驟為 歩驟一繪制模擬鼠標(biāo)開始;
步驟二計(jì)算各個(gè)視圖下模擬鼠標(biāo)的位置大?。?步驟三保存被模擬鼠標(biāo)覆蓋的視圖區(qū)域; 歩驟四根據(jù)鼠標(biāo)的形狀描述繪制模擬鼠標(biāo); 步驟五繪制模擬鼠標(biāo)結(jié)束。
所述一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其中,應(yīng)用軟件啟動(dòng)時(shí),同時(shí)啟動(dòng)窗口管理
系統(tǒng),打開文檔,并啟動(dòng)文檔繪制系統(tǒng)根據(jù)文檔中的數(shù)據(jù)在窗口的視圖上繪制文檔的內(nèi)容,
如果有多個(gè)視圖,就要分別繪制;所述一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的具體工作步驟為
(1)應(yīng)用軟件檢測到需要啟動(dòng)鼠標(biāo)模擬主裝置的命令時(shí),啟動(dòng)主裝置,并根據(jù)需要將數(shù)據(jù)一傳遞到主裝置;
所述數(shù)據(jù)一包括但不局限于如下參數(shù)-
1.1、 文檔窗口個(gè)數(shù)(nDocWinCount)
1.2、 nDocWinCount個(gè)窗口描述,每一項(xiàng)數(shù)據(jù)描述如下
1.2.1、 窗口標(biāo)志符
1.2.2、 窗口相對屏幕的位置和大小
1.3、 需要模擬鼠標(biāo)的視圖的個(gè)數(shù)(nViewCount)
1.4、 nViewCount項(xiàng)視圖信息描述,每一項(xiàng)數(shù)據(jù)描述如下
1.4.1、 視圖所在的文檔窗口的標(biāo)志符
1.4.2、 視圖標(biāo)志符
1.4.3、 視圖相對于文檔窗口的位置和大小
1.4.4、 模擬鼠標(biāo)在視圖中的活動(dòng)邊界
1.4.5、 鼠標(biāo)相對于視圖的大小
1.4.6、 鼠標(biāo)的形狀描述,可以包含但是不局限于如下信息
1.4.6.1、 鼠標(biāo)形狀圖片,圖片格式是TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一種,優(yōu)選方式為BMP格式;
1.4.6.2、 鼠標(biāo)的路徑描述
1.4.6.3、 鼠標(biāo)的顏色
1.4.7、 鼠標(biāo)的熱點(diǎn)相對于鼠標(biāo)的形狀的位置
1.5、 系統(tǒng)鼠標(biāo)當(dāng)前相對于屏幕的位置
(2) 主裝置收到數(shù)據(jù)一后,保存該數(shù)據(jù),并且根據(jù)數(shù)據(jù)一對每一個(gè)需要模擬鼠標(biāo)的視圖 創(chuàng)建一個(gè)單視圖鼠標(biāo)模擬子裝置,并且根據(jù)數(shù)據(jù)一將數(shù)據(jù)二傳遞到單視圖鼠標(biāo)模擬子裝置;
所述數(shù)據(jù)二包括但不局限于如下參數(shù)
2.1、 窗口相對屏幕的位置和大小
2.2、 視圖相對于文檔窗口的位置和大小
2.3、 模擬鼠標(biāo)在視圖中的活動(dòng)邊界
2.4、 鼠標(biāo)相對于視圖的大小
2.5、 鼠標(biāo)的熱點(diǎn)相對于鼠標(biāo)的形狀的位置
2.6、 系統(tǒng)鼠標(biāo)當(dāng)前相對于屏幕的位置
(3) 單視圖鼠標(biāo)模擬子裝置收到數(shù)據(jù)二后,保存數(shù)據(jù)二,并且創(chuàng)建鼠標(biāo)計(jì)算裝置和鼠標(biāo)
繪制裝置,并根據(jù)數(shù)據(jù)二,將數(shù)據(jù)三傳給鼠標(biāo)計(jì)算裝置,將數(shù)據(jù)四傳遞給鼠標(biāo)繪制裝置,鼠標(biāo)繪制裝置保存該信息;
所述數(shù)據(jù)三包括但不局限于如下參數(shù)
3.1、 窗口相對屏幕的位置和大小
3.2、 視圖相對于文檔窗口的位置和大小
3.3、 模擬鼠標(biāo)在視圖中的活動(dòng)邊界
3.4、 系統(tǒng)鼠標(biāo)當(dāng)前相對于屏幕的位置
所述數(shù)據(jù)四包括但不局限于如下參數(shù)
4.1、 鼠標(biāo)相對于視圖的大小
4.2、 鼠標(biāo)的形狀描述,可以包含但是不局限于如下信息
4.2.1、 鼠標(biāo)形狀圖片,圖片格式是TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一種,優(yōu)選方式為BMP格式;
4.2.2、 鼠標(biāo)的路徑描述
4.2.3、 鼠標(biāo)的顏色
4.3、 模擬鼠標(biāo)的熱點(diǎn)相對于模擬鼠標(biāo)的形狀的位置
(4) 鼠標(biāo)計(jì)算裝置收到數(shù)據(jù)三后計(jì)算系統(tǒng)鼠標(biāo)的位置是否正好處于對應(yīng)的模擬鼠標(biāo)的活 動(dòng)邊界,并且將此信息傳給單視圖鼠標(biāo)模擬子裝置,單視圖鼠標(biāo)模擬子裝置保存這一信息;
(5) 主裝置創(chuàng)建完所有需要?jiǎng)?chuàng)建模擬鼠標(biāo)的視圖后,建立起子裝置和視圖的一一對應(yīng)關(guān) 系,對應(yīng)關(guān)系的數(shù)據(jù)描述如數(shù)據(jù)五所示;然后檢査所有的子裝置中的數(shù)據(jù)項(xiàng),如果系統(tǒng)鼠標(biāo) 恰好處于某一個(gè)視圖中的模擬鼠標(biāo)活動(dòng)邊界之內(nèi),該視圖我們叫做焦點(diǎn)視圖,進(jìn)入步驟(6), 否則系統(tǒng)初始化完畢進(jìn)入步驟(10);
所述數(shù)據(jù)五包括但不局限于如下參數(shù)
5.1、 文檔窗口標(biāo)志符
5.2、 視圖標(biāo)志符
5.3、 視圖鼠標(biāo)模擬子裝置標(biāo)志符
(6) 主裝置將當(dāng)前的系統(tǒng)鼠標(biāo)的位置傳遞給焦點(diǎn)視圖的視圖鼠標(biāo)模擬子裝置,并要求該 視圖鼠標(biāo)模擬子裝置計(jì)算出模擬鼠標(biāo)相對于其活動(dòng)邊界比例位置,模擬鼠標(biāo)相對于其活動(dòng)邊 界的比例為數(shù)據(jù)六,并將這一信息傳遞給主裝置;
所述數(shù)據(jù)六包括但不局限于如下參數(shù) 6.1、模擬鼠標(biāo)相對于其活動(dòng)邊界的比例
(7) 主裝置將數(shù)據(jù)六傳遞給所有的視圖鼠標(biāo)模擬子裝置,視圖鼠標(biāo)模擬子裝置將數(shù)據(jù)六
中的鼠標(biāo)位置信息傳遞到鼠標(biāo)位置計(jì)算子裝置,計(jì)算出模擬鼠標(biāo)的相對于視圖的位置和大小,并且將這一信息傳遞給主裝置,該信息為數(shù)據(jù)七; 所述數(shù)據(jù)七包括但不局限于如下參數(shù)
7.1、 模擬鼠標(biāo)的位置,相對于視圖區(qū)域
7.2、 模擬鼠標(biāo)的大小
(8) 主裝置將數(shù)據(jù)七傳遞到視圖繪制系統(tǒng),并要求視圖繪制系統(tǒng)將數(shù)據(jù)七中對應(yīng)的視圖 中的區(qū)域保存在數(shù)據(jù)八中,并傳回主裝置,數(shù)據(jù)八記錄了當(dāng)前視圖模擬鼠標(biāo)區(qū)域所覆蓋的文 檔視圖顯示的圖像內(nèi)容,如果模擬鼠標(biāo)移動(dòng)位置,數(shù)據(jù)八可以用來恢復(fù)模擬鼠標(biāo)剛才所占的 文檔視圖區(qū)域,并將數(shù)據(jù)八傳遞到對應(yīng)的視圖鼠標(biāo)模擬子裝置中,視圖鼠標(biāo)模擬子裝置將這 信息保存起來;
所述數(shù)據(jù)八包括但不局限于如下參數(shù)
8.1、 圖像在視圖上的位置
8.2、 圖像在視圖上的大小
8.3、 圖像內(nèi)容,視圖在該區(qū)域的精確描述, 一般采用BMP格式來描述
(9) 主裝置要求所有的視圖鼠標(biāo)模擬子裝置生成對應(yīng)視圖的模擬鼠標(biāo)的圖像信息,即數(shù) 據(jù)九,并將該數(shù)據(jù)傳遞到視圖繪制系統(tǒng)中,視圖繪制系統(tǒng)根據(jù)數(shù)據(jù)九,在對應(yīng)的地方繪制出 模擬鼠標(biāo)的圖像,用戶能夠看見模擬鼠標(biāo);主裝置隱藏系統(tǒng)鼠標(biāo);
所述數(shù)據(jù)九包括但不局限于如下參數(shù)
9.1、 圖像在視圖上的位置
9.2、 圖像在視圖上的大小
9.3、 圖像內(nèi)容,可以是圖片格式TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一種,優(yōu)選方式為BMP格式;或者是自定義的繪制命令序列;
(10) 主裝置不停檢測視圖是否被改變,如果某個(gè)視圖改變,主裝置從對應(yīng)的視圖鼠標(biāo) 模擬子裝置中取出數(shù)據(jù)八,根據(jù)數(shù)據(jù)八中的模擬鼠標(biāo)的位置,要求視圖繪制系統(tǒng)重新生成數(shù) 據(jù)八并傳回主裝置,并將數(shù)據(jù)八傳入視圖鼠標(biāo)模擬子裝置,保存起來;
(11) 如果主裝置監(jiān)測到了系統(tǒng)鼠標(biāo)的移動(dòng),主裝置要求所有的視圖鼠標(biāo)模擬子裝置將 它保存的數(shù)據(jù)八傳遞給自己,并且將該數(shù)據(jù)傳遞到視圖繪制系統(tǒng),視圖繪制系統(tǒng)根據(jù)數(shù)據(jù)八 恢復(fù)鼠標(biāo)剛才占據(jù)的位置,如果視圖鼠標(biāo)模擬子裝置在之前并沒有保存數(shù)據(jù)八,就什么也不 做;
(12) 主裝置將新的系統(tǒng)鼠標(biāo)位置傳遞給每一個(gè)視圖鼠標(biāo)模擬子裝置,視圖鼠標(biāo)模擬子
裝置收到該信息后計(jì)算系統(tǒng)鼠標(biāo)的位置是否正好處于對應(yīng)的模擬鼠標(biāo)的活動(dòng)邊界之內(nèi),并且
將這一信息傳遞到主裝置;如果系統(tǒng)鼠標(biāo)恰好在某一個(gè)模擬鼠標(biāo)的活動(dòng)邊界之內(nèi),則轉(zhuǎn)(6)重復(fù)這一過程,否則轉(zhuǎn)到(10),重復(fù)(10)到(11)部分的過程; (13)應(yīng)用軟件檢測到不需要鼠標(biāo)模擬的命令時(shí),銷毀主裝置。
在本系統(tǒng)中模擬鼠標(biāo)的移動(dòng)的恢復(fù)數(shù)據(jù)是由系統(tǒng)的視圖繪制系統(tǒng)提供的,實(shí)際上也可以 通過操作系統(tǒng)保存模擬鼠標(biāo)對應(yīng)的區(qū)域的圖像信息,只是這樣一來,系統(tǒng)需要在鼠標(biāo)模擬和 視圖繪制系統(tǒng)之間同歩視圖的可視內(nèi)容,這就增加了系統(tǒng)的復(fù)雜度。另外就是主裝置對視圖 改變的檢測過程可以根據(jù)視圖實(shí)際需要改變的區(qū)域和模擬鼠標(biāo)的區(qū)域進(jìn)行優(yōu)化,只有當(dāng)兩者 相交的時(shí)候才需要更新數(shù)據(jù)八。
需要注意的是,主裝置的檢測活動(dòng)可以是主動(dòng)的或者是被動(dòng)的。主動(dòng)檢測的意思就是主 裝置一直控制系統(tǒng)的執(zhí)行流程,隨時(shí)査詢系統(tǒng)的狀態(tài),這里檢測系統(tǒng)鼠標(biāo)的移動(dòng)就是調(diào)用操
作系統(tǒng)的API (Application Program Interface應(yīng)用程序編程接口 )。而被動(dòng)檢測就是指系統(tǒng)的 控制只是局部受到主裝置的控制,具體來說就是系統(tǒng)的流程還是由應(yīng)用軟件本身來控制,主 裝置向應(yīng)用軟件注冊它感興趣的事件或消息,當(dāng)對應(yīng)的事件或消息產(chǎn)生的時(shí)候,應(yīng)用軟件通 知主裝置,并將事件相關(guān)的數(shù)據(jù)傳遞給它,如果主裝置認(rèn)為該事件需要自己處理,就執(zhí)行它 的控制過程,執(zhí)行完畢后將控制返回,應(yīng)用軟件再檢測事件,如此循環(huán)。
有一種可以節(jié)約資源的方式是,對于焦點(diǎn)視圖上的模擬鼠標(biāo)處理方法為,直接使用系統(tǒng) 鼠標(biāo)而不進(jìn)行模擬,此時(shí)焦點(diǎn)視圖對應(yīng)的視圖鼠標(biāo)模擬子裝置僅僅起到計(jì)算模擬鼠標(biāo)位置比 例的作用,不需要保存模擬鼠標(biāo)當(dāng)前在視圖土的圖像信息。但是這樣做也會(huì)喪失一些靈活性, 現(xiàn)在的操作系統(tǒng)對動(dòng)態(tài)的鼠標(biāo)支持的不夠好,如果想鼠標(biāo)不停地改變它的形狀、大小、顏色、 透明度、甚至3d的效果的話,系統(tǒng)鼠標(biāo)是不能夠滿足要求的。
下面以金山演示(WPS Office Presentation)中繪制熒光筆時(shí)的鼠標(biāo)模擬來說明本發(fā)明的 工作過程
1、打丌金山演示W(wǎng)PS Office Presentation,進(jìn)入雙屏擴(kuò)展模式播放狀態(tài)應(yīng)用中,演講者 視圖和觀眾視圖的示意圖如圖4所示,演講者視圖可看到多個(gè)視圖的縮略視圖1、縮略視圖2、 縮略視圖3、縮略視圖4、縮略視圖5、縮略視圖6,以及作為主顯示區(qū)域的縮略視圖6的放 大視圖60;而觀眾視圖只能看到縮略視圖6的放大視圖600。
左邊的是演講者視圖,通常顯示在演講者電腦上,右邊的是觀眾視圖,通常顯示在投影
儀上,兩個(gè)視圖分別顯示在不同的顯示器上,點(diǎn)擊繪制熒光筆按鈕,此時(shí)如果用戶需要在演
講者視圖上面繪制熒光筆,當(dāng)鼠標(biāo)在演講者的視圖區(qū)域時(shí),需要在演講者視圖區(qū)域顯示繪圖
鼠標(biāo),以顯示繪制點(diǎn),同時(shí)也需要顯示在觀眾視圖上面,以便觀眾可以看見鼠標(biāo)繪制的過程
和繪制點(diǎn)。因此需要模擬出兩個(gè)鼠標(biāo)來,系統(tǒng)啟動(dòng)主裝置,執(zhí)行系統(tǒng)工作原理中的(1)到(5)歩,建立如圖3所示的主裝置,其中視圖鼠標(biāo)模擬子裝置A對應(yīng)演講者視圖,視圖鼠標(biāo)模擬 子裝置B對應(yīng)觀眾視圖。
2、 此時(shí)鼠標(biāo)仍舊處于熒光筆繪制按鈕上面,因此主裝置的工作狀態(tài)根據(jù)(5)歩的結(jié) 果,轉(zhuǎn)移到歩驟(10)。
3、 在金山演示W(wǎng)PS O伍ce Presentation中的主裝置的鼠標(biāo)檢測活動(dòng)是屬于被動(dòng)檢測, 當(dāng)用戶移動(dòng)鼠標(biāo)到演講者視圖區(qū)域的時(shí)候,主裝置執(zhí)行系統(tǒng)工作原理中的(10), (11), (12),
(6), (7), (8), (9)步,用戶可以看見模擬鼠標(biāo)被繪制出來,而系統(tǒng)鼠標(biāo)被主裝置隱藏起 來,如圖10所示,左邊的顯示為演講者視圖上的熒光筆鼠標(biāo)70,右邊的為觀眾視圖的鼠標(biāo) 700,由于觀眾視圖比演講者視圖區(qū)域大,所以它的鼠標(biāo)顯示的就比演講者視圖上的鼠標(biāo)大。
4、 如果用戶移動(dòng)鼠標(biāo)到另外一個(gè)地方,會(huì)持續(xù)執(zhí)行第3步。
5、 用戶按ESC鍵退出熒光筆繪制狀態(tài)的時(shí)候,主裝置先根據(jù)系統(tǒng)工作原理中的步驟 (8)生成的數(shù)據(jù)八來恢復(fù)被模擬鼠標(biāo)覆蓋的區(qū)域,并且自動(dòng)恢復(fù)系統(tǒng)鼠標(biāo)為可見。
本發(fā)明提供的實(shí)例系統(tǒng)高效地滿足了上述易用性方案的要求,但并非用來限定本發(fā)明, 本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),應(yīng)當(dāng)可做一些變動(dòng)與修改,因此本發(fā) 明的保護(hù)范圍當(dāng)視后附的權(quán)利要求書所界定為準(zhǔn)。對本領(lǐng)域的技術(shù)人員來說,在不偏離本發(fā) 明范圍內(nèi),進(jìn)行的各種改進(jìn)和變化,均屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置,包括有計(jì)算機(jī)鼠標(biāo)和應(yīng)用軟件,所述應(yīng)用軟件包括窗口管理系統(tǒng)作為運(yùn)行支持圖形用戶界面的操作系統(tǒng)下的應(yīng)用軟件的基本控制模塊,是對操作系統(tǒng)已經(jīng)提供的窗口管理功能的包裝和擴(kuò)充,主要處理操作系統(tǒng)向應(yīng)用軟件發(fā)送的與窗口管理相關(guān)的消息;文檔繪制系統(tǒng)用以將軟件的邏輯數(shù)據(jù),轉(zhuǎn)化為人可以理解的圖形和圖像的模塊,通過調(diào)用操作系統(tǒng)的圖形繪制命令,將應(yīng)用軟件數(shù)據(jù)轉(zhuǎn)化為文字圖像、各種圖形或表格,應(yīng)用軟件中的其他模塊通過調(diào)用文檔繪制系統(tǒng)中的服務(wù)將自己的數(shù)據(jù)轉(zhuǎn)化為軟件使用者容易理解的圖像顯示在應(yīng)用軟件的窗口中;其特征在于,所述在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置還包括有模擬鼠標(biāo)系統(tǒng),所述模擬鼠標(biāo)系統(tǒng)包括有主裝置用以管理應(yīng)用軟件對鼠標(biāo)模擬的請求,并且負(fù)責(zé)管理各個(gè)視圖鼠標(biāo)模擬子裝置的創(chuàng)建、銷毀和它們之間的協(xié)同運(yùn)作;視圖鼠標(biāo)模擬子裝置所述視圖鼠標(biāo)模擬子裝置用以將應(yīng)用軟件的鼠標(biāo)模擬任務(wù)劃分為一個(gè)個(gè)具體的在應(yīng)用軟件的各個(gè)視圖上面進(jìn)行的鼠標(biāo)模擬子任務(wù),每個(gè)需要模擬的視圖都對應(yīng)一個(gè)視圖鼠標(biāo)模擬子裝置;所述主裝置是視圖鼠標(biāo)模擬子裝置和應(yīng)用軟件其他模塊之間交換數(shù)據(jù)的橋梁,同時(shí)負(fù)責(zé)檢測當(dāng)前的系統(tǒng)鼠標(biāo)的狀態(tài)。
2、 根據(jù)權(quán)利要求l所述的一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置,其特征在于,所述視圖 鼠標(biāo)模擬子裝置還包括有鼠標(biāo)計(jì)算裝置用以收集視圖鼠標(biāo)模擬子裝置所對應(yīng)的視圖信息和原始鼠標(biāo)位置信息, 計(jì)算出模擬的鼠標(biāo)的位置、大小、形狀和其他參數(shù);鼠標(biāo)繪制裝置用以根據(jù)鼠標(biāo)計(jì)算裝置的結(jié)果,調(diào)用文檔繪制系統(tǒng)服務(wù),將模擬的鼠標(biāo) 繪制出來。
3、 一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其特征在于,應(yīng)用軟件啟動(dòng)時(shí),同時(shí)啟動(dòng)窗口 管理系統(tǒng),打開文檔,并啟動(dòng)文檔繪制系統(tǒng);用戶給出指令,應(yīng)用程序判斷是否需要進(jìn)行鼠標(biāo)模擬;當(dāng)應(yīng)用程序判斷需要啟動(dòng)鼠標(biāo)模擬主裝置時(shí),啟動(dòng)主裝置,并根據(jù)需要將數(shù)據(jù)傳遞到主 裝置;主裝置收到數(shù)據(jù)后,保存該數(shù)據(jù),并且根據(jù)數(shù)據(jù)對每一個(gè)需要模擬鼠標(biāo)的視圖創(chuàng)建一個(gè) 或多個(gè)單視圖鼠標(biāo)模擬子裝置;所述視圖鼠標(biāo)模擬子裝置將應(yīng)用軟件的鼠標(biāo)模擬任務(wù)劃分為一個(gè)個(gè)具體的在應(yīng)用軟件的 各個(gè)視圖上面進(jìn)行的鼠標(biāo)模擬子任務(wù),每個(gè)需要模擬的視圖都對應(yīng)一個(gè)視圖鼠標(biāo)模擬子裝置;鼠標(biāo)計(jì)算裝置收集視圖鼠標(biāo)模擬子裝置所對應(yīng)的視圖信息和原始鼠標(biāo)位置信息,計(jì)算出 將要模擬的鼠標(biāo)的位置、大小、形狀和其他參數(shù);鼠標(biāo)繪制裝置根據(jù)鼠標(biāo)計(jì)算裝置的結(jié)果,調(diào)用文檔繪制系統(tǒng)服務(wù),將模擬的鼠標(biāo)繪制出來;當(dāng)用戶給出指令,應(yīng)用程序判斷不需要進(jìn)行鼠標(biāo)模擬時(shí),應(yīng)用程序銷毀主裝置; 工作結(jié)束。
4、根據(jù)權(quán)利要求3所述的一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其特征在于,主裝置執(zhí) 行鼠標(biāo)模擬邏輯的工作步驟為 步驟一主裝置邏輯開始;步驟二根據(jù)需要?jiǎng)?chuàng)建視圖鼠標(biāo)模擬子裝置; 步驟三初始化視圖鼠標(biāo)模擬子裝置;步驟四計(jì)算當(dāng)前系統(tǒng)鼠標(biāo)是否處于某個(gè)視圖區(qū)域內(nèi),如是,進(jìn)入步驟五,如否,進(jìn)入 步驟七;步驟五隱藏系統(tǒng)鼠標(biāo); 步驟六繪制出模擬鼠標(biāo); 歩驟七主裝置動(dòng)態(tài)檢測邏輯。
5、 根據(jù)權(quán)利要求4所述的一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其特征在于,初始化視 圖鼠標(biāo)模擬子裝置的工作步驟為步驟一初始化視圖鼠標(biāo)模擬子裝置開始; 步驟二創(chuàng)建鼠標(biāo)計(jì)算子裝置初始化; 步驟三創(chuàng)建鼠標(biāo)繪制裝置;歩驟四計(jì)算鼠標(biāo)與視圖相對位置傳遞給主裝置; 歩驟五初始化結(jié)束。
6、 根據(jù)權(quán)利要求4所述的一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其特征在于,主裝置動(dòng) 態(tài)檢測邏輯的工作步驟為歩驟一主裝置動(dòng)態(tài)檢測邏輯開始;步驟二檢測鼠標(biāo)移動(dòng)和視圖改變事件,如發(fā)生鼠標(biāo)移動(dòng),進(jìn)入步驟四,如發(fā)生視圖縮放,進(jìn)入歩驟三;步驟三通知視圖鼠標(biāo)模擬子裝置改變視圖大小,進(jìn)入步驟六;步驟四通知視圖鼠標(biāo)模擬子裝置鼠標(biāo)相對位置改變信息;步驟五計(jì)算當(dāng)前系統(tǒng)鼠標(biāo)是否處于某個(gè)視圖區(qū)域內(nèi),如是,進(jìn)入步驟六;如否,進(jìn)入 歩驟九;歩驟六擦除模擬的鼠標(biāo),進(jìn)入歩驟七; 步驟七隱藏系統(tǒng)鼠標(biāo); 步驟八繪制出模擬鼠標(biāo),進(jìn)入步驟一; 步驟九擦除模擬的鼠標(biāo),進(jìn)入歩驟一。
7、 根據(jù)權(quán)利要求4所述的一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其特征在于,繪制模擬 鼠標(biāo)的工作步驟為歩驟一繪制模擬鼠標(biāo)開始;步驟二計(jì)算各個(gè)視圖下模擬鼠標(biāo)的位置大小; 步驟三保存被模擬鼠標(biāo)覆蓋的視圖區(qū)域; 步驟四根據(jù)鼠標(biāo)的形狀描述繪制模擬鼠標(biāo); 步驟五繪制模擬鼠標(biāo)結(jié)束。
8、 根據(jù)權(quán)利要求3所述的一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其特征在于,應(yīng)用軟件 啟動(dòng)時(shí),同時(shí)啟動(dòng)窗口管理系統(tǒng),打開文檔,并啟動(dòng)文檔繪制系統(tǒng),根據(jù)文檔中的數(shù)據(jù)在窗 口的視圖上繪制文檔的內(nèi)容,如果有多個(gè)視圖,就要分別繪制;所述一種在多區(qū)域內(nèi)同時(shí)顯 示鼠標(biāo)的具體工作步驟為(1)應(yīng)用軟件檢測到需要啟動(dòng)鼠標(biāo)模擬主裝置的命令時(shí),啟動(dòng)主裝置,并根據(jù)需要將數(shù) 據(jù)一傳遞到主裝置;所述數(shù)據(jù)一包括如下參數(shù)、1.1、 文檔窗口個(gè)數(shù)n、1.2、 n個(gè)窗口描述,每一項(xiàng)數(shù)據(jù)描述如下、1.2.1、 窗口標(biāo)志符、1.2.2、 窗口相對屏幕的位置和大小、1.3、 需要模擬鼠標(biāo)的視圖的個(gè)數(shù)n、1.4、 n項(xiàng)視圖信息描述,每一項(xiàng)數(shù)據(jù)描述如下、1.4.1、 視圖所在的文檔窗口的標(biāo)志符、1.4.2、 視圖標(biāo)志符、1.4.3、 視圖相對于文檔窗口的位置和大小、1.4.4、 模擬鼠標(biāo)在視圖中的活動(dòng)邊界.1.4.5、 鼠標(biāo)相對于視圖的大小.1.4.6、 鼠標(biāo)的形狀描述,包含如下信息.1.4.6.1、 鼠標(biāo)形狀圖片,圖片格式是TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一種,優(yōu)選方式為BMP格式;.1.4.6.2、 鼠標(biāo)的路徑描述.1.4.6.3、 鼠標(biāo)的顏色.1.4.7、 鼠標(biāo)的熱點(diǎn)相對于鼠標(biāo)的形狀的位置 1.5、系統(tǒng)鼠標(biāo)當(dāng)前相對于屏幕的位置(2) 主裝置收到數(shù)據(jù)一后,保存該數(shù)據(jù),并且根據(jù)數(shù)據(jù)一對每一個(gè)需要模擬鼠標(biāo)的視圖 創(chuàng)建一個(gè)單視圖鼠標(biāo)模擬子裝置,并且根據(jù)數(shù)據(jù)一將數(shù)據(jù)二傳遞到單視圖鼠標(biāo)模擬子裝置;所述數(shù)據(jù)二包括如下參數(shù).2.1、 窗口相對屏幕的位置和大小 -.2.2、 視圖相對于文檔窗口的位置和大小.2.3、 模擬鼠標(biāo)在視圖中的活動(dòng).邊界.2.4、 鼠標(biāo)相對于視圖的大小.2.5、 鼠標(biāo)的熱點(diǎn)相對于鼠標(biāo)的形狀的位置.2.6、 系統(tǒng)鼠標(biāo)當(dāng)前相對于屏幕的位置(3) 單視圖鼠標(biāo)模擬子裝置收到數(shù)據(jù)二后,保存數(shù)據(jù)二,并且創(chuàng)建鼠標(biāo)計(jì)算裝置和鼠標(biāo) 繪制裝置,并根據(jù)數(shù)據(jù)二,將數(shù)據(jù)三傳給鼠標(biāo)計(jì)算裝置,將數(shù)據(jù)四傳遞給鼠標(biāo)繪制裝置,鼠 標(biāo)繪制裝置保存該信息;所述數(shù)據(jù)三包括如下參數(shù).3.1、 窗口相對屏幕的位置和大小.3.2、 視圖相對于文檔窗口的位置和大小.3.3、 模擬鼠標(biāo)在視圖中的活動(dòng)邊界.3.4、 系統(tǒng)鼠標(biāo)當(dāng)甜相對于屏幕的位置 所述數(shù)據(jù)四包括如下參數(shù).4.1、 鼠標(biāo)相對于視圖的大小.4.2、 鼠標(biāo)的形狀描述,包含如下信息.4.2.1、 鼠標(biāo)形狀圖片,圖片格式是TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一種,優(yōu)選方式為BMP格式;.4.2.2、 鼠標(biāo)的路徑描述、4.2.3、鼠標(biāo)的顏色 4.3、模擬鼠標(biāo)的熱點(diǎn)相對于模擬鼠標(biāo)的形狀的位置、(4) 鼠標(biāo)計(jì)算裝置收到數(shù)據(jù)三后計(jì)算系統(tǒng)鼠標(biāo)的位置是否正好處于對應(yīng)的模擬鼠標(biāo)的活 動(dòng)邊界,并且將此信息傳給單視圖鼠標(biāo)模擬子裝置,單視圖鼠標(biāo)模擬子裝置保存這一信息;、(5) 主裝置創(chuàng)建完所有需要?jiǎng)?chuàng)建模擬鼠標(biāo)的視圖后,建立起子裝置和視圖的一一對應(yīng)關(guān) 系,對應(yīng)關(guān)系的數(shù)據(jù)描述如數(shù)據(jù)五所示;然后檢查所有的子裝置中的數(shù)據(jù)項(xiàng),如果系統(tǒng)鼠標(biāo) 恰好處于某一個(gè)視圖中的模擬鼠標(biāo)活動(dòng)邊界之內(nèi),該視圖我們叫做焦點(diǎn)視圖,進(jìn)入步驟(6), 否則系統(tǒng)初始化完畢進(jìn)入步驟(10);所述數(shù)據(jù)五包括如下參數(shù)、5.1、 文檔窗口標(biāo)志符、5.2、 視圖標(biāo)志符、5.3、 視圖鼠標(biāo)模擬子裝置標(biāo)志符(6) 主裝置將當(dāng)前的系統(tǒng)鼠標(biāo)的位置傳遞給焦點(diǎn)視圖的視圖鼠標(biāo)模擬子裝置,并要求該 視圖鼠標(biāo)模擬子裝置計(jì)算出模擬鼠標(biāo)相對于其活動(dòng)邊界比例位置,模擬鼠標(biāo)相對于其活動(dòng)邊 界的比例為數(shù)據(jù)六,并將這一信息傳遞給主裝置;所述數(shù)據(jù)六包括如下參數(shù)、6.1、模擬鼠標(biāo)相對于其活動(dòng)邊界的比例(7) 主裝置將數(shù)據(jù)六傳遞給所有的視圖鼠標(biāo)模擬子裝置,視圖鼠標(biāo)模擬子裝置將數(shù)據(jù)六 中的鼠標(biāo)位置信息傳遞到鼠標(biāo)位置計(jì)算子裝置,計(jì)算出模擬鼠標(biāo)的相對于視圖的位置和大小, 并且將這一信息傳遞給主裝置,該信息為數(shù)據(jù)七;所述數(shù)據(jù)七包括如下參數(shù)、7.1、 模擬鼠標(biāo)的位置,相對于視圖區(qū)域、7.2、 模擬鼠標(biāo)的大小(8) 主裝置將數(shù)據(jù)七傳遞到視圖繪制系統(tǒng),并要求視圖繪制系統(tǒng)將數(shù)據(jù)七中對應(yīng)的視圖 中的區(qū)域保存在數(shù)據(jù)八中,并傳回主裝置,數(shù)據(jù)八記錄了當(dāng)前視圖模擬鼠標(biāo)區(qū)域所覆蓋的文 檔視圖顯示的圖像內(nèi)容,如果模擬鼠標(biāo)移動(dòng)位置,數(shù)據(jù)八可以用來恢復(fù)模擬鼠標(biāo)剛才所占的 文檔視圖區(qū)域,并將數(shù)據(jù)八傳遞到對應(yīng)的視圖鼠標(biāo)模擬子裝置中,視圖鼠標(biāo)模擬子裝置將這 信息保存起來;所述數(shù)據(jù)八包括如下參數(shù)、8.1、 圖像在視圖上的位置、8.2、 圖像在視圖上的大小8.3、圖像內(nèi)容,視圖在該區(qū)域的精確描述(9) 主裝置要求所有的視圖鼠標(biāo)模擬子裝置生成對應(yīng)視圖的模擬鼠標(biāo)的圖像信息,即數(shù) 據(jù)九,并將該數(shù)據(jù)傳遞到視圖繪制系統(tǒng)中,視圖繪制系統(tǒng)根據(jù)數(shù)據(jù)九,在對應(yīng)的地方繪制出 模擬鼠標(biāo)的圖像,用戶能夠看見模擬鼠標(biāo);主裝置隱藏系統(tǒng)鼠標(biāo);所述數(shù)據(jù)九包括如下參數(shù)
9.1、 圖像在視圖上的位置9.2、 圖像在視圖上的大小9.3、 圖像內(nèi)容,可以是圖片格式TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一種,優(yōu)選方式為BMP格式;或者是自定義的繪制命令序列;(10) 主裝置不停檢測視圖是否被改變,如果某個(gè)視圖改變,主裝置從對應(yīng)的視圖鼠標(biāo) 模擬子裝置中取出數(shù)據(jù)八,根據(jù)數(shù)據(jù)八中的模擬鼠標(biāo)的位置,要求視圖繪制系統(tǒng)重新生成數(shù) 據(jù)八并傳回主裝置,并將數(shù)據(jù)八傳入視圖模擬子裝置,保存起來;(11) 如果主裝置監(jiān)測到了系統(tǒng)鼠標(biāo)的移動(dòng),主裝置要求所有的視圖鼠標(biāo)模擬子裝置將 它保存的數(shù)據(jù)八傳遞給自己,并且將該數(shù)據(jù)傳遞到視圖繪制系統(tǒng),視圖繪制系統(tǒng)根據(jù)數(shù)據(jù)八 恢復(fù)鼠標(biāo)剛才占據(jù)的位置,如果視圖鼠標(biāo)模擬子裝置在之前并沒有保存數(shù)據(jù)八,就什么也不 做;(12) 主裝置將新的系統(tǒng)鼠標(biāo)位置傳遞給每一個(gè)視圖鼠標(biāo)模擬子裝置,視圖鼠標(biāo)模擬子 裝置收到該信息后計(jì)算系統(tǒng)鼠標(biāo)的位置是否正好處于對應(yīng)的模擬鼠標(biāo)的活動(dòng)邊界之內(nèi),并且 將這一信息傳遞到主裝置;如果系統(tǒng)鼠標(biāo)恰好在某一個(gè)模擬鼠標(biāo)的活動(dòng)邊界之內(nèi),則轉(zhuǎn)(6) 重復(fù)這一過程,否則轉(zhuǎn)到(10),重復(fù)(10)到(11)部分的過程;(13) 應(yīng)用軟件檢測到不需要鼠標(biāo)模擬的命令時(shí),銷毀主裝置。9、 根據(jù)權(quán)利要求3所述的一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其特征在于,主裝置的 檢測活動(dòng)是主動(dòng)的或者是被動(dòng)的方式;主動(dòng)檢測就是主裝置一直控制系統(tǒng)的執(zhí)行流程,隨時(shí)査詢系統(tǒng)的狀態(tài),這里檢測系統(tǒng)鼠 標(biāo)的移動(dòng)就是調(diào)用操作系統(tǒng)的API;被動(dòng)檢測就是指系統(tǒng)的控制只是局部受到主裝置的控制,具體來說就是系統(tǒng)的流程還是 由應(yīng)用軟件本身來控制,主裝置向應(yīng)用軟件注冊它感興趣的事件或消息,當(dāng)對應(yīng)的事件或消 息產(chǎn)生的時(shí)候,應(yīng)用軟件通知主裝置,并將事件相關(guān)的數(shù)據(jù)傳遞給它,如果主裝置認(rèn)為該事 件需要自己處理,就執(zhí)行它的控制過程,執(zhí)行完畢后將控制返回,應(yīng)用軟件再檢測事件,如 此循環(huán)。
10、 根據(jù)權(quán)利要求3所述的一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的方法,其特征在于,對于焦點(diǎn)視圖上的模擬鼠標(biāo)處理方法為,直接使用系統(tǒng)鼠標(biāo)而不進(jìn)行模擬,此時(shí)焦點(diǎn)視圖對應(yīng)的視 圖鼠標(biāo)模擬子裝置僅僅起到計(jì)算模擬鼠標(biāo)位置比例的作用,不需要保存模擬鼠標(biāo)當(dāng)前在視圖 上的圖像信息。
全文摘要
本發(fā)明提供一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置和方法,使得應(yīng)用軟件可以在需要的時(shí)候使用任意多個(gè)鼠標(biāo)來指示用戶的輸入,本發(fā)明的鼠標(biāo)模擬的解決方案,不僅可以用在播放軟件的雙屏鼠標(biāo)模擬中,實(shí)際上它滿足了任何需要在不同屏幕區(qū)域同時(shí)顯示鼠標(biāo)的需求。所述一種在多區(qū)域內(nèi)同時(shí)顯示鼠標(biāo)的裝置,包括有計(jì)算機(jī)鼠標(biāo)和應(yīng)用軟件,所述應(yīng)用軟件包括窗口管理系統(tǒng)、文檔繪制系統(tǒng)、主裝置和視圖鼠標(biāo)模擬子裝置,所述主裝置是視圖鼠標(biāo)模擬子裝置和應(yīng)用軟件其他模塊之間交換數(shù)據(jù)的橋梁,同時(shí)負(fù)責(zé)檢測當(dāng)前的系統(tǒng)鼠標(biāo)的狀態(tài)。所述視圖鼠標(biāo)模擬子裝置還包括有鼠標(biāo)計(jì)算裝置和鼠標(biāo)繪制裝置。
文檔編號G06F9/455GK101295264SQ20071002767
公開日2008年10月29日 申請日期2007年4月24日 優(yōu)先權(quán)日2007年4月24日
發(fā)明者鵬 劉 申請人:珠海金山軟件股份有限公司