實現(xiàn)窗口同步的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種實現(xiàn)窗口同步的方法和裝置,屬于計算機【技術領域】。所述方法包括:獲取打開從屬窗口的指令;啟動消息鉤子,將所述從屬窗口對應的從屬窗口控件添加到同步名單中;當宿主元素窗口控件發(fā)生變化時,通過所述消息鉤子獲取所述宿主元素窗口控件的變化信息;將所述宿主元素窗口控件的變化信息傳送到所述同步名單中的從屬窗口控件。所述裝置包括:指令獲取模塊、啟動添加模塊、信息獲取模塊和同步變化模塊。本發(fā)明通過使用消息鉤子技術獲取宿主元素窗口控件的變化信息,以實現(xiàn)從屬窗口控件對應的從屬窗口與宿主元素窗口控件對應的宿主元素窗口同步變化,從屬窗口的移動范圍不受限。
【專利說明】實現(xiàn)窗口同步的方法和裝置
【技術領域】
[0001]本發(fā)明涉及計算機【技術領域】,特別涉及一種實現(xiàn)窗口同步的方法和裝置。
【背景技術】
[0002]近年來,各種客戶端軟件在提供更多更強大功能的同時,越來越注重用戶界面的提升,例如廣泛使用的對用戶進行提示、提醒功能而存在的氣泡窗口等就是一例。氣泡窗口附著的宿主元素窗口(主窗口或氣泡窗口控件指示的元素)發(fā)生移動時,氣泡窗口要與宿主元素窗口同步移動以保持指示的正確性。
[0003]現(xiàn)有實現(xiàn)窗口同步的方法如下:將氣泡窗口控件設置為宿主元素窗口控件的子控件,當宿主元素窗口控件發(fā)生移動時,氣泡窗口控件與宿主元素窗口控件同步移動,從而實現(xiàn)氣泡窗口控件對應的氣泡窗口與宿主元素窗口控件對應的宿主元素窗口同步移動。
[0004]然而,在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術至少存在以下問題:
[0005]將氣泡窗口控件設置為宿主元素窗口控件的子控件,氣泡窗口只能在宿主元素窗口的范圍內(nèi)移動,氣泡窗口的移動范圍受限。
【發(fā)明內(nèi)容】
[0006]為了解決上面所述的現(xiàn)有技術的問題,本發(fā)明實施例提供了一種實現(xiàn)窗口同步的方法和裝置。所述技術方案如下:
[0007]—方面,提供了一種實現(xiàn)窗口同步的方法,所述方法包括:
[0008]獲取打開從屬窗口的指令;
[0009]啟動消息鉤子,將所述從屬窗口對應的從屬窗口控件添加到同步名單中;其中,所述消息鉤子用于獲取宿主元素窗口控件的變化;
[0010]當宿主元素窗口控件發(fā)生變化時,通過所述消息鉤子獲取所述宿主元素窗口控件的變化信息;
[0011]將所述宿主元素窗口控件的變化信息傳送到所述同步名單中的從屬窗口控件,使所述從屬窗口控件與所述宿主元素窗口控件同步變化,以實現(xiàn)所述從屬窗口控件對應的從屬窗口與所述宿主元素窗口控件對應的宿主元素窗口同步變化。
[0012]另一方面,提供了一種實現(xiàn)窗口同步的裝置,所述裝置包括:
[0013]指令獲取模塊,用于獲取打開從屬窗口的指令;
[0014]啟動添加模塊,用于在所述指令獲取模塊獲取打開從屬窗口的指令后,啟動消息鉤子,將所述從屬窗口對應的從屬窗口控件添加到同步名單中;其中,所述消息鉤子用于獲取宿主元素窗口控件的變化;
[0015]信息獲取模塊,用于在所述啟動添加模塊將所述從屬窗口對應的從屬窗口控件添加到同步名單中后,當宿主元素窗口控件發(fā)生變化時,通過所述消息鉤子獲取所述宿主元素窗口控件的變化信息;
[0016]同步變化模塊,用于在所述信息獲取模塊通過所述消息鉤子獲取所述宿主元素窗口控件的變化信息后,將所述宿主元素窗口控件的變化信息傳送到所述同步名單中的從屬窗口控件,使所述從屬窗口控件與所述宿主元素窗口控件同步變化,以實現(xiàn)所述從屬窗口控件對應的從屬窗口與所述宿主元素窗口控件對應的宿主元素窗口同步變化。
[0017]本發(fā)明實施例提供的技術方案帶來的有益效果是:
[0018]通過使用消息鉤子技術獲取宿主元素窗口控件的變化信息,將宿主元素窗口控件的變化信息傳送到同步名單中的從屬窗口控件,使從屬窗口控件與宿主元素窗口控件同步變化,以實現(xiàn)從屬窗口控件對應的從屬窗口與宿主元素窗口控件對應的宿主元素窗口同步變化,從屬窗口的移動范圍不受限。
【專利附圖】
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0020]圖1是本發(fā)明實施例一提供的一種實現(xiàn)窗口同步的方法流程圖;
[0021]圖2是本發(fā)明實施例二提供的一種實現(xiàn)窗口同步的方法流程圖;
[0022]圖3是本發(fā)明實施例三提供的一種實現(xiàn)窗口同步的裝置結構示意圖;
[0023]圖4是本發(fā)明實施例三提供的另一種實現(xiàn)窗口同步的裝置結構示意圖;
[0024]圖5是本發(fā)明實施例三提供的又一種實現(xiàn)窗口同步的裝置結構示意圖。
【具體實施方式】
[0025]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0026]實施例一
[0027]本發(fā)明實施例提供了一種實現(xiàn)窗口同步的方法,參見圖1,該方法包括:
[0028]101:獲取打開從屬窗口的指令。
[0029]102:啟動消息鉤子,將從屬窗口對應的從屬窗口控件添加到同步名單中;其中,消息鉤子用于獲取宿主元素窗口控件的變化。
[0030]103:當宿主元素窗口控件發(fā)生變化時,通過消息鉤子獲取宿主元素窗口控件的變
化信息。
[0031]104:將宿主元素窗口控件的變化信息傳送到同步名單中的從屬窗口控件,使從屬窗口控件與宿主元素窗口控件同步變化,以實現(xiàn)從屬窗口控件對應的從屬窗口與宿主元素窗口控件對應的宿主元素窗口同步變化。
[0032]優(yōu)選地,獲取打開從屬窗口的指令之前,還包括:
[0033]設置從屬窗口對應的從屬窗口控件繼承預設的同步模板類;其中,預設的同步模板類中包含有與宿主元素窗口控件相關的變化邏輯。
[0034]優(yōu)選地,將從屬窗口對應的從屬窗口控件添加到同步名單中為:
[0035]調(diào)用同步模板類接口方法,將從屬窗口控件添加到預設的同步模板類的內(nèi)部管理模塊中的同步名單中;[0036]相應地,將宿主元素窗口控件的變化信息傳送到同步名單中的從屬窗口控件為:
[0037]將宿主元素窗口控件的變化信息傳送到預設的同步模板類的內(nèi)部管理模塊中的同步名單中的從屬窗口控件。
[0038]優(yōu)選地,啟動消息鉤子之前,還包括:
[0039]判斷消息鉤子是否已經(jīng)被啟動;
[0040]如果沒有被啟動,則執(zhí)行啟動消息鉤子的步驟。
[0041]優(yōu)選地,同步變化包括:同步移動、同步隱藏、同步關閉、同步縮小、同步放大或同
步顯示。
[0042]本發(fā)明實施例所述的實現(xiàn)窗口同步的方法,通過使用消息鉤子技術獲取宿主元素窗口控件的變化信息,將宿主元素窗口控件的變化信息傳送到同步名單中的從屬窗口控件,使從屬窗口控件與宿主元素窗口控件同步變化,以實現(xiàn)從屬窗口控件對應的從屬窗口與宿主元素窗口控件對應的宿主元素窗口同步變化,從屬窗口的移動范圍不受限。設置從屬窗口對應的從屬窗口控件繼承預設的同步模板類,通過模板類技術與消息鉤子技術,實現(xiàn)窗口同步變化,現(xiàn)有從屬窗口控件只需做很小的改動就能與宿主元素窗口同步變化,實現(xiàn)簡捷、功能強大、容易擴展,可以提高開發(fā)效率。
[0043]實施例二
[0044]本發(fā)明實施例提供了一種實現(xiàn)窗口同步的方法,參見圖2,該方法包括:
[0045]201:獲取打開從屬窗口的指令。
[0046]其中,從屬窗口包括氣泡窗口、在宿主元素窗口中打開的子窗口等宿主元素窗口的子窗口或嵌套窗口等。
[0047]具體地,當用戶在宿主元素窗口進行操作,觸發(fā)了打開某業(yè)務場景對應的氣泡窗口時,會獲取到打開從屬窗口的指令。
[0048]具體地,本發(fā)明實施例使用模板類技術,將與宿主元素窗口控件相關的變化邏輯存儲在一個單獨的模板類(為了便于說明將此模板類稱為同步模板類)中,設置從屬窗口對應的從屬窗口控件繼承預設的同步模板類。
[0049]202:判斷消息鉤子是否已經(jīng)被啟動,如果沒有被啟動,則執(zhí)行203 ;否則,執(zhí)行204。
[0050]其中,消息鉤子用于獲取宿主元素窗口控件的變化。
[0051]具體地,宿主元素窗口可能對應多個從屬窗口,多個從屬窗口使用一個宿主元素窗口控件變化的消息鉤子即可,第一個被打開的從屬窗口,執(zhí)行該步驟時,獲取宿主元素窗口控件變化的消息鉤子還沒有被啟動,執(zhí)行203 ;后續(xù)被打開的從屬窗口執(zhí)行該步驟時,獲取宿主元素窗口控件變化的消息鉤子已經(jīng)被啟動,執(zhí)行204。
[0052]203:啟動消息鉤子。
[0053]204:調(diào)用同步模板類接口方法,將從屬窗口控件添加到預設的同步模板類的內(nèi)部管理模塊中的同步名單中。
[0054]其中,將從屬窗口控件添加到預設的同步模板類的內(nèi)部管理模塊中的同步名單中,具體是將從屬窗口控件本身的一個C++類的對像(可以稱為從屬窗口控件的對象引用)添加到預設的同步模板類的內(nèi)部管理模塊中的同步名單中。通過從屬窗口控件的對象引用可以訪問從屬窗口控件的屬性、事件和方法。屬性是控件數(shù)據(jù)的簡單訪問者,從屬窗口控件有很多屬性,用于處理從屬窗口控件的操作。事件則是從屬窗口控件的一些簡單而可見的功能。
[0055]具體地,調(diào)用同步模板類接口方法,將從屬窗口控件添加到預設的同步模板類的內(nèi)部管理模塊中的同步名單中,從而讓模板類知道該從屬窗口控件需要與宿主元素窗口同步變化。并且,同步名單并不限于設置在同步模板類的內(nèi)部管理模塊中,還可以設置在其他地方,對此不做具體限定。
[0056]205:當宿主元素窗口控件發(fā)生變化時,通過消息鉤子獲取宿主元素窗口控件的變化信息,并將宿主元素窗口控件的變化信息傳送到同步名單中的從屬窗口控件,使從屬窗口控件與宿主元素窗口控件同步變化,以實現(xiàn)從屬窗口控件對應的從屬窗口與宿主元素窗口控件對應的宿主元素窗口同步變化。
[0057]以移動為例:當用戶用鼠標移動宿主元素窗口時,消息鉤子會即時截獲到宿主元素窗口移動消息,并將宿主元素窗口移動消息傳送到預設的同步模板類的內(nèi)部管理模塊,同步模板類的內(nèi)部管理模塊在收到宿主元素窗口移動消息后,輪詢同步名單中的從屬窗口控件,并根據(jù)宿主元素窗口移動消息中包含的具體移動數(shù)據(jù)(如移動大小、方向等)來移動同步名單中的從屬窗口控件,從而實現(xiàn)從屬窗口控件對應的從屬窗口與宿主元素窗口控件對應的宿主元素窗口同步變化。
[0058]本發(fā)明實施例所述的實現(xiàn)窗口同步的方法,通過使用消息鉤子技術獲取宿主元素窗口控件的變化信息,將宿主元素窗口控件的變化信息傳送到同步名單中的從屬窗口控件,使從屬窗口控件與宿主元素窗口控件同步變化,以實現(xiàn)從屬窗口控件對應的從屬窗口與宿主元素窗口控件對應的宿主元素窗口同步變化,從屬窗口的移動范圍不受限。設置從屬窗口對應的從屬窗口控件繼承預設的同步模板類,通過模板類技術與消息鉤子技術,實現(xiàn)窗口同步變化,現(xiàn)有從屬窗口控件只需做很小的改動就能與宿主元素窗口同步變化,實現(xiàn)簡捷、功能強大、容易擴展,可以提高開發(fā)效率。
[0059]實施例三
[0060]參見圖3,本發(fā)明實施例提供了一種實現(xiàn)窗口同步的裝置,該裝置包括:
[0061]指令獲取模塊301,用于獲取打開從屬窗口的指令;
[0062]啟動添加模塊302,用于在指令獲取模塊301獲取打開從屬窗口的指令后,啟動消息鉤子,將從屬窗口對應的從屬窗口控件添加到同步名單中;其中,消息鉤子用于獲取宿主元素窗口控件的變化;
[0063]信息獲取模塊303,用于在啟動添加模塊302將從屬窗口對應的從屬窗口控件添加到同步名單中后,當宿主元素窗口控件發(fā)生變化時,通過消息鉤子獲取宿主元素窗口控件的變化信息;
[0064]同步變化模塊304,用于在信息獲取模塊303通過消息鉤子獲取宿主元素窗口控件的變化信息后,將宿主元素窗口控件的變化信息傳送到同步名單中的從屬窗口控件,使從屬窗口控件與宿主元素窗口控件同步變化,以實現(xiàn)從屬窗口控件對應的從屬窗口與宿主元素窗口控件對應的宿主元素窗口同步變化。
[0065]優(yōu)選地,參見圖4,該裝置還包括:
[0066]設置模塊305,用于在指令獲取模塊301獲取打開從屬窗口的指令之前,設置從屬窗口對應的從屬窗口控件繼承預設的同步模板類;其中,預設的同步模板類中包含有與宿主元素窗口控件相關的變化邏輯。
[0067]優(yōu)選地,啟動添加模塊302包括:
[0068]添加單元,用于調(diào)用同步模板類接口方法,將從屬窗口控件添加到預設的同步模板類的內(nèi)部管理模塊中的同步名單中;
[0069]相應地,同步變化模塊304包括:
[0070]傳送單元,用于將宿主元素窗口控件的變化信息傳送到預設的同步模板類的內(nèi)部管理模塊中的同步名單中的從屬窗口控件。
[0071]優(yōu)選地,參見圖5,該裝置還包括:
[0072]判斷模塊306,用于判斷消息鉤子是否已經(jīng)被啟動;
[0073]通知模塊307,用于當判斷模塊306的判斷結果是沒有被啟動,則通知啟動添加模塊302執(zhí)行啟動消息鉤子的步驟。
[0074]優(yōu)選地,該同步變化包括:
[0075]同步移動、同步隱藏、同步關閉、同步縮小、同步放大或同步顯示。
[0076]本發(fā)明實施例所述的實現(xiàn)窗口同步的裝置,通過使用消息鉤子技術獲取宿主元素窗口控件的變化信息,將宿主元素窗口控件的變化信息傳送到同步名單中的從屬窗口控件,使從屬窗口控件與宿主元素窗口控件同步變化,以實現(xiàn)從屬窗口控件對應的從屬窗口與宿主元素窗口控件對應的宿主元素窗口同步變化,從屬窗口的移動范圍不受限。設置從屬窗口對應的從屬窗口控件繼承預設的同步模板類,通過模板類技術與消息鉤子技術,實現(xiàn)窗口同步變化,現(xiàn)有從屬窗口控件只需做很小的改動就能與宿主元素窗口同步變化,實現(xiàn)簡捷、功能強大、容易擴展,可以提高開發(fā)效率。
[0077]需要說明的是:上述實施例提供的實現(xiàn)窗口同步的裝置,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設備的內(nèi)部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的實現(xiàn)窗口同步的裝置與實現(xiàn)窗口同步的的方法實施例屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
[0078]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0079]本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0080]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.一種實現(xiàn)窗口同步的方法,其特征在于,所述方法包括: 獲取打開從屬窗口的指令; 啟動消息鉤子,將所述從屬窗口對應的從屬窗口控件添加到同步名單中;其中,所述消息鉤子用于獲取宿主元素窗口控件的變化; 當宿主元素窗口控件發(fā)生變化時,通過所述消息鉤子獲取所述宿主元素窗口控件的變化信息; 將所述宿主元素窗口控件的變化信息傳送到所述同步名單中的從屬窗口控件,使所述從屬窗口控件與所述宿主元素窗口控件同步變化,以實現(xiàn)所述從屬窗口控件對應的從屬窗口與所述宿主元素窗口控件對應的宿主元素窗口同步變化。
2.根據(jù)權利要求1所述的方法,其特征在于,在所述獲取打開從屬窗口的指令之前,還包括: 設置從屬窗口對應的從屬窗口控件繼承預設的同步模板類;其中,所述預設的同步模板類中包含有與宿主元素窗口控件相關的變化邏輯。
3.根據(jù)權利要求2所述的方法,其特征在于,所述將所述從屬窗口對應的從屬窗口控件添加到同步名單中為: 調(diào)用同步模板類接口方法,將所述從屬窗口控件添加到預設的同步模板類的內(nèi)部管理模塊中的同步名單中; 相應地,所述將所述宿主元素窗口控件的變化信息傳送到所述同步名單中的從屬窗口控件為: 將所述宿主元素窗口控件的變化信息傳送到所述同步模板類的內(nèi)部管理模塊中的同步名單中的從屬窗口控件。
4.根據(jù)權利要求1所述的方法,其特征在于,所述啟動消息鉤子之前,還包括: 判斷消息鉤子是否已經(jīng)被啟動; 如果沒有被啟動,則執(zhí)行所述啟動消息鉤子的步驟。
5.根據(jù)權利要求1所述的方法,其特征在于,所述同步變化包括: 同步移動、同步隱藏、同步關閉、同步縮小、同步放大或同步顯示。
6.一種實現(xiàn)窗口同步的裝置,其特征在于,所述裝置包括: 指令獲取模塊,用于獲取打開從屬窗口的指令; 啟動添加模塊,用于在所述指令獲取模塊獲取打開從屬窗口的指令后,啟動消息鉤子,將所述從屬窗口對應的從屬窗口控件添加到同步名單中;其中,所述消息鉤子用于獲取宿主元素窗口控件的變化; 信息獲取模塊,用于在所述啟動添加模塊將所述從屬窗口對應的從屬窗口控件添加到同步名單中后,當宿主元素窗口控件發(fā)生變化時,通過所述消息鉤子獲取所述宿主元素窗口控件的變化信息; 同步變化模塊,用于在所述信息獲取模塊通過所述消息鉤子獲取所述宿主元素窗口控件的變化信息后,將所述宿主元素窗口控件的變化信息傳送到所述同步名單中的從屬窗口控件,使所述從屬窗口控件與所述宿主元素窗口控件同步變化,以實現(xiàn)所述從屬窗口控件對應的從屬窗口與所述宿主元素窗口控件對應的宿主元素窗口同步變化。
7.根據(jù)權利要求6所述的裝置,其特征在于,所述裝置還包括:設置模塊,用于在所述指令獲取模塊獲取打開從屬窗口的指令之前,設置從屬窗口對應的從屬窗口控件繼承預設的同步模板類;其中,所述預設的同步模板類中包含有與宿主元素窗口控件相關的變化邏輯。
8.根據(jù)權利要求7所述的裝置,其特征在于,所述啟動添加模塊包括: 添加單元,用于調(diào)用同步模板類接口方法,將所述從屬窗口控件添加到預設的同步模板類的內(nèi)部管理模塊中的同步名單中; 相應地,所述同步變化模塊包括: 傳送單元,用于將所述宿主元素窗口控件的變化信息傳送到所述同步模板類的內(nèi)部管理模塊中的同步名單中的從屬窗口控件。
9.根據(jù)權利要求6所述的裝置,其特征在于,所述裝置還包括: 判斷模塊,用于判斷消息鉤子是否已經(jīng)被啟動; 通知模塊,用于當所述判斷模塊的判斷結果是沒有被啟動,則通知所述啟動添加模塊執(zhí)行所述啟動消息鉤子的步驟。
10.根據(jù)權利要求6所述的裝置,其特征在于,所述同步變化包括: 同步移動、同步隱藏、同步關閉、同步縮小、同步放大或同步顯示。
【文檔編號】G06F9/445GK103902325SQ201210587702
【公開日】2014年7月2日 申請日期:2012年12月28日 優(yōu)先權日:2012年12月28日
【發(fā)明者】張明賀 申請人:北京新媒傳信科技有限公司