欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多文檔界面的轉(zhuǎn)換方法以及相關(guān)裝置的制作方法

文檔序號:6425428閱讀:137來源:國知局
專利名稱:一種多文檔界面的轉(zhuǎn)換方法以及相關(guān)裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種多文檔界面的轉(zhuǎn)換方法以及相關(guān)裝置。
背景技術(shù)
為了便于用戶的操作,現(xiàn)有的軟件普遍支持多文檔界面(MDI, MultipleDocumentInterface)技術(shù),使得用戶可以在不關(guān)閉當前窗體的情況下,在各個子窗體中自由切換。ActiveX組件是指一種可執(zhí)行的代碼或程序,在主程序中可能同時插入了多個ActiveX組件,將ActiveX組件內(nèi)窗體與調(diào)用它的主程序融合成為MDI子窗體,使得用戶在主程序窗體內(nèi)通過點擊“窗體”菜單內(nèi)的MDI子窗體列表菜單項切換操作不同ActiveX組件的窗體。
在現(xiàn)有技術(shù)中,主要通過下列兩種方法將ActiveX組件的窗體轉(zhuǎn)換為主程序的MDI子窗體第一種,將需要調(diào)用的ActiveX組件的窗體遷移到主程序中,將遷移過來的ActiveX組件的窗體直接設(shè)置為主程序窗體的MDI子窗體,使得主程序與ActiveX組件使用相同的功能界面;第二種,先將ActiveX組件(如果組件類型為ActiveX DLL先將類型改為ActiveXOCX)的窗體轉(zhuǎn)化為與主程序具有相同功能和界面的自定義控件,然后在主程序中添加一個MDI子窗體作為該自定義控件的父窗體,程序在運行過程中動態(tài)地將該自定義控件加載到MDI子窗體。上述的兩種方法雖然都實現(xiàn)了 ActiveX組件的窗體轉(zhuǎn)換為主程序的MDI子窗體的目的,但都需要對主程序或ActiveX組件進行改造,破壞原有程序的結(jié)構(gòu),轉(zhuǎn)化細節(jié)繁瑣容易出錯;而且,對每一種ActiveX組件都需要進行單獨地改造,不具有復用性。

發(fā)明內(nèi)容
本發(fā)明實施例提供了一種多文檔界面的轉(zhuǎn)換方法以及相關(guān)裝置,用于將ActiveX組件的窗體轉(zhuǎn)換為主程序的MDI子窗體。本發(fā)明提供的多文檔界面的轉(zhuǎn)換方法,包括當主程序啟動后,子類化所述主程序的窗體;若ActiveX組件被調(diào)用,貝U加載所述ActiveX組件,并子類化所述ActiveX組件的窗體;所述ActiveX組件為在所述主程序中擴展的一種功能附件;在所述主程序的窗體中創(chuàng)建多文檔界面MDI子窗體,并子類化所述MDI子窗體;將子類化后的所述ActiveX組件的窗體嵌入到子類化后的所述MDI子窗體內(nèi),使得所述ActiveX組件的窗體作為所述主程序的MDI子窗體被顯示和操作。本發(fā)明提供的多文檔界面的轉(zhuǎn)換裝置,包括第一子類化單元,用于當主程序啟動后,子類化所述主程序的窗體;加載單元,用于當ActiveX組件被調(diào)用時,加載所述ActiveX組件;第二子類化單元,用于在加載ActiveX組件之后,子類化所述ActiveX組件的窗體;以及在創(chuàng)建MDI子窗體之后,子類化所述MDI子窗體;創(chuàng)建單元,用于子類化所述ActiveX組件的窗體之后,在所述主程序的窗體中創(chuàng)建多文檔界面MDI子窗體;嵌入單元,用于在子類化所述MDI子窗體之后,將子類化后的所述ActiveX組件的窗體嵌入到子類化后的所述MDI子窗體內(nèi),使得所述ActiveX組件的窗體作為所述主程序的MDI子窗體被顯示和操作。從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點本發(fā)明提供了一種多文檔界面的轉(zhuǎn)換裝置,該轉(zhuǎn)換裝置是一種連接主程序和ActiveX組件的橋梁插件;在主程序中調(diào)用ActiveX組件之后,該轉(zhuǎn)換裝置在主程序的窗體中創(chuàng)建MDI子窗體且對其進行子類化,并通過子類化該主程序和ActiveX組件的窗體,獲取該主程序和ActiveX組件的窗體狀態(tài),使得該轉(zhuǎn)換裝置可以控制該主程序和ActiveX組件的窗體行為,將子類化后的ActiveX組件的窗體嵌入到子類化后的MDI子窗體內(nèi),從而將該ActiveX組件的窗體行為與該MDI子窗體的窗體行為關(guān)聯(lián)到一起,完成ActiveX組件的窗體向MDI子窗體的轉(zhuǎn)化。由于本發(fā)明使用的是一種第三方插件關(guān)聯(lián)ActiveX組件與主程序的技術(shù),ActiveX組件的窗體可以直接在原主程序的基礎(chǔ)上轉(zhuǎn)換為MDI子窗體,不容易出錯,且多種ActiveX組件的窗體都可以復用該轉(zhuǎn)換裝置進行MDI子窗體的轉(zhuǎn)換,提高了 ActiveX組件窗體轉(zhuǎn)換的效率。


圖I是本發(fā)明實施例中多文檔界面的轉(zhuǎn)換方法的一個流程示意圖;圖2是本發(fā)明實施例中多文檔界面的轉(zhuǎn)換方法的另一個流程示意圖;圖3是本發(fā)明實施例中多文檔界面的轉(zhuǎn)換裝置的邏輯結(jié)構(gòu)示意圖。
具體實施例方式本發(fā)明實施例提供了一種多文檔界面的轉(zhuǎn)換方法以及相關(guān)裝置,用于將ActiveX組件的窗體轉(zhuǎn)換為主程序的MDI子窗體。請參閱圖1,本發(fā)明實施例中多文檔界面的轉(zhuǎn)換方法的一個實施例包括101、子類化主程序的窗體;當主程序啟動后,多文檔界面的轉(zhuǎn)換裝置子類化該主程序的窗體。Windows是一個基于消息的系統(tǒng),消息在Windows的對象之間相互傳遞;子類化技術(shù)用于截獲窗體或控件之間的消息,子類化是消息達到目的窗體之前完成的操作,那些被截獲的消息可以被保留,也可以被修改,該消息進行相應(yīng)的處理后,繼續(xù)發(fā)送。簡單的說,子類化就是創(chuàng)建一個新的窗體消息處理過程,并將其插入到原先的默認窗體消息處理過程之
N / .刖。該轉(zhuǎn)換裝置對該主程序的窗體進行子類化,即使用該轉(zhuǎn)換裝置中自定義的窗體函數(shù)的地址替換原主程序的窗體函數(shù)的地址,使得該轉(zhuǎn)換裝置可以獲取到主程序的窗體行為,便于后續(xù)對該主程序的窗體執(zhí)行控制操作。該窗體行為包括窗體的放大、縮小以及關(guān)閉等。102、加載并子類化ActiveX組件窗體;在主程序啟動后,若用戶調(diào)用了 ActiveX組件,則多文檔界面的轉(zhuǎn)換裝置可以識別到具體是哪一個ActiveX組件被調(diào)用,根據(jù)該ActiveX組件的功能信息加載該ActiveX組件,并子類化該ActiveX組件的窗體。ActiveX組件是在主程序中擴展的一種功能附件,可以另外安裝在主程序中,以豐富該主程序的功能。如步驟101所述,在子類化該ActiveX組件的窗體之后,多文檔界面的轉(zhuǎn)換裝置可以截獲與該ActiveX組件的窗體相關(guān)的消息(如用戶對該ActiveX組件的窗體的控制消息),從而獲取到ActiveX組件的窗體行為,可以對ActiveX組件的窗體進行相應(yīng)的控制。對ActiveX組件的窗體進行子類化可以對該ActiveX組件的窗體進行控制的同時,也可以避免對ActiveX組件的原程序進行修改,減小了程序出錯的可能性。103、創(chuàng)建MDI子窗體;在子類化主程序的窗體以及ActiveX組件的窗體之后,多文檔界面的轉(zhuǎn)換裝置在該主程序的窗體中創(chuàng)建MDI子窗體,并對該MDI子窗體進行子類化。在現(xiàn)有技術(shù)中,一般的應(yīng)用程序都具備同時打開多個子窗體的功能,而在本發(fā)明中,在用戶調(diào)用ActiveX組件之后,在主程序的窗體中可以創(chuàng)建MDI子窗體(由于多文檔界 面的轉(zhuǎn)換裝置已經(jīng)對主程序的窗體進行子類化,故可以對主程序的窗體行為進行控制),則該主程序的窗體為該MDI子窗體的主窗體,而此時的MDI子窗體為一個空白的窗體,即該MDI子窗體此時不具有業(yè)務(wù)功能。由于該子窗體是基于主程序的主窗體創(chuàng)建的,因此不會像現(xiàn)有技術(shù)那樣因修改主程序內(nèi)容而產(chǎn)生錯誤。104、嵌入ActiveX組件的窗體。在創(chuàng)建了 MDI子窗體之后,多文檔界面的轉(zhuǎn)換裝置將子類化后的ActiveX組件的窗體嵌入到子類化后的MDI子窗體內(nèi),使得所述ActiveX組件的窗體作為所述主程序的MDI子窗體被顯示和操作。當ActiveX組件的窗體被子類化后,多文檔界面的轉(zhuǎn)換裝置截獲系統(tǒng)對該Ac t i veX組件窗體的各種指令消息,對該Ac t i veX組件的窗體進行控制;具體為,將Ac t i veX組件窗體的操作界面推送到上述主程序的MDI子窗體內(nèi),以ActiveX組件的具體操作界面填充該MDI子窗體,使得該MDI子窗體實現(xiàn)業(yè)務(wù)功能,該業(yè)務(wù)功能即ActiveX組件的業(yè)務(wù)功能,并將該ActiveX組件的窗體行為關(guān)聯(lián)該MDI子窗體的窗體行為(由于該MDI子窗體已經(jīng)被子類化,故也該MDI子窗體的窗體行為也可以被控制),使得該ActiveX組件的窗體與該MDI子窗體具有相同的控制邏輯,則用戶在該MDI子窗體進行操作時,同時也是對該ActiveX組件進行操作。本發(fā)明提供了一種多文檔界面的轉(zhuǎn)換裝置,該轉(zhuǎn)換裝置是一種連接主程序和ActiveX組件的橋梁插件;在主程序中調(diào)用ActiveX組件之后,該轉(zhuǎn)換裝置在該主程序的窗體中創(chuàng)建MDI子窗體且對其進行子類化,并通過子類化該主程序和ActiveX組件的窗體,獲取該主程序和ActiveX組件的窗體狀態(tài),使得該轉(zhuǎn)換裝置可以控制該主程序和ActiveX組件的窗體行為,將子類化后的ActiveX組件的窗體嵌入到子類化后的MDI子窗體內(nèi),從而將該ActiveX組件的窗體行為與該MDI子窗體的窗體行為關(guān)聯(lián)到一起,完成ActiveX組件的窗體向MDI子窗體的轉(zhuǎn)化。由于本發(fā)明使用的是一種第三方插件關(guān)聯(lián)ActiveX組件與主程序的技術(shù),ActiveX組件的窗體可以直接在原主程序的基礎(chǔ)上轉(zhuǎn)換為MDI子窗體,不容易出錯,且多種ActiveX組件的窗體都可以復用該轉(zhuǎn)換裝置轉(zhuǎn)換為主程序的MDI子窗體,提高了ActiveX組件窗體轉(zhuǎn)換的效率。在實際應(yīng)用中,并非所有ActiveX組件的窗體都可以轉(zhuǎn)換為MDI子窗體,故為了避免MDI子窗體轉(zhuǎn)換的過程出錯,本發(fā)明實施例還提供了 MDI子窗體轉(zhuǎn)換的判斷機制,具體請參閱圖2,本發(fā)明實施例中多文檔界面的轉(zhuǎn)換方法的另一個實施例包括201、子類化主程序的窗體;當主程序啟動后,第一橋梁插件子類化該主程序的窗體。多文檔界面的轉(zhuǎn)換裝置可以分為第一橋梁插件和第二橋梁插件,該第一橋梁插件加載在主程序上,該第二橋梁插件加載在ActiveX組件上;當?shù)谝粯蛄翰寮偷诙蛄翰寮謩e加載在主程序和ActiveX組件上之后,第一橋梁插件和第二橋梁插可以相互識別對方的操作。202、加載并子類化ActiveX組件窗體;在主程序啟動后,若用戶調(diào)用了 ActiveX組件,則主程序上的第一橋梁插件根據(jù)該ActiveX組件的功能信息加載該ActiveX組件,在ActiveX組件加載完成后,第二橋梁插 件子類化該ActiveX組件的窗體。203、判斷是否能轉(zhuǎn)換為MDI子窗體;第二橋梁插件判斷ActiveX組件的窗體是否能轉(zhuǎn)換為MDI子窗體,若能,則觸發(fā)步驟204 ;若不能,則終止轉(zhuǎn)換的過程。在加載該ActiveX組件之后,第二橋梁插件識別該ActiveX組件的窗體類型,如判斷該ActiveX組件的窗體是否為模態(tài)窗體,若是,則該ActiveX組件的窗體不能轉(zhuǎn)換為MDI子窗體;若否,則該ActiveX組件的窗體能轉(zhuǎn)換為MDI子窗體。模態(tài)窗體指的是用戶必須在該窗體上完成相應(yīng)的操作或?qū)υ摯绑w執(zhí)行關(guān)閉操作后才能返回的窗體;反之,則為非模態(tài)窗體。由于模態(tài)窗體具有固定的邊框大小,無法轉(zhuǎn)化為MDI子窗體,因此,為了避免發(fā)生錯誤,當檢測到ActiveX組件的窗體為模態(tài)窗體時,終止轉(zhuǎn)換的過程。此外,作為可選的方案,當主程序限定了 MDI子窗體打開的數(shù)量時,第二橋梁插件會判斷當前主程序中MDI子窗體的打開數(shù)目是否達到門限值,若是,則ActiveX組件的窗體不能轉(zhuǎn)換為MDI子窗體;若否,則所述ActiveX組件的窗體能轉(zhuǎn)換為MDI子窗體。在實際應(yīng)用中,判斷ActiveX組件的窗體是否能轉(zhuǎn)換為MDI子窗體還可以使用其它的限制條件,具體此處不作限定。204、創(chuàng)建MDI子窗體;當?shù)诙蛄翰寮卸ó斍暗腁ctiveX組件窗體可以轉(zhuǎn)換為MDI子窗體之后,第二橋梁插件在該主程序的窗體中創(chuàng)建MDI子窗體,并對該MDI子窗體進行子類化。205、嵌入ActiveX組件的窗體;在創(chuàng)建了 MDI子窗體之后,第二橋梁插件將子類化后的ActiveX組件的窗體嵌入到子類化后MDI子窗體內(nèi),使得所述ActiveX組件的窗體作為所述主程序的MDI子窗體被顯示和操作。當ActiveX組件的窗體被子類化后,第二橋梁插件截獲系統(tǒng)對該ActiveX組件窗體的各種指令消息,對該ActiveX組件的窗體進行控制;具體為,將ActiveX組件窗體的操作界面推送到上述主程序的MDI子窗體內(nèi),以ActiveX組件的具體操作界面填充該MDI子窗體,使得該MDI子窗體實現(xiàn)業(yè)務(wù)功能,該業(yè)務(wù)功能即ActiveX組件的業(yè)務(wù)功能,并將該ActiveX組件的窗體行為關(guān)聯(lián)該MDI子窗體的窗體行為(由于該MDI子窗體已經(jīng)被子類化,故第二橋梁插件也可以對該MDI子窗體的窗體行為進行控制),使得該ActiveX組件的窗體與該MDI子窗體具有相同的控制邏輯,則用戶在該MDI子窗體進行操作時,同時也是對該ActiveX組件進行操作。206、調(diào)整ActiveX組件的窗體。第二橋梁插件根據(jù)主程序窗體的大小調(diào)整ActiveX組件窗體的位置和大小。由于原ActiveX組件窗體和主程序窗體的大小可能不一致,為了便于用戶在統(tǒng)一的界面內(nèi)操作,第二橋梁插件會根據(jù)主程序窗體的大小自適應(yīng)的調(diào)整ActiveX組件窗體的位置和大小,使得原ActiveX組件的邊框和標題欄被隱藏,這樣使得主程序整體的操作界面更加和諧。在本發(fā)明實施例中,增加了 ActiveX組件窗體是否能轉(zhuǎn)化為MDI子窗體的判斷機制和調(diào)整ActiveX組件窗體大小的機制,使得MDI子窗體的轉(zhuǎn)化更加的合理,出錯率更低,提高了用戶的可操作性。
下面對用于執(zhí)行上述多文檔界面的轉(zhuǎn)換方法的本發(fā)明SDP消息推送裝置實施例進行說明,其邏輯結(jié)構(gòu)請參考圖3,本發(fā)明實施例中多文檔界面的轉(zhuǎn)換裝置的一個實施例包括第一子類化單元301,用于當主程序啟動后,子類化該主程序的窗體;第一子類化單元301屬于第一橋梁插件的部分;加載單元302,用于檢測到ActiveX組件被調(diào)用時,加載該ActiveX組件;第二子類化單元303,用于在加載ActiveX組件之后,子類化該ActiveX組件的窗體;以及在創(chuàng)建MDI子窗體之后,子類化該MDI子窗體;第二子類化單元303屬于第二橋梁插件的部分;創(chuàng)建單元304,用于子類化ActiveX組件的窗體之后,在主程序的窗體中創(chuàng)建多文檔界面MDI子窗體;嵌入單元305,用于在子類化MDI子窗體之后,將子類化后的ActiveX組件的窗體嵌入到子類化后的MDI子窗體內(nèi),使得該ActiveX組件的窗體作為主程序的MDI子窗體被顯示和操作。本發(fā)明實施例中多文檔界面的轉(zhuǎn)換裝置還可以進一步包括窗體調(diào)整單元306,用于根據(jù)主程序的窗體的大小調(diào)整ActiveX組件的窗體的位置和大小;判斷單元307,用于判斷ActiveX組件的窗體是否能轉(zhuǎn)換為MDI子窗體,若能,則觸發(fā)創(chuàng)建單元304 ;若不能,則終止轉(zhuǎn)換的過程。本發(fā)明實施例多文檔界面的轉(zhuǎn)換裝置中各個單元具體的交互過程如下當主程序啟動時,第一子類化單元301子類化該主程序的窗體。子類化窗體即為創(chuàng)建一個新的窗體消息處理過程,并將其插入到原先的默認窗體消息處理過程之前。在子類化主程序的窗體之后,第一橋梁插件可以獲取到主程序的窗體行為,便于后續(xù)對該主程序的窗體執(zhí)行控制操作。該窗體行為包括窗體的放大、縮小以及關(guān)閉等。若用戶調(diào)用了 ActiveX組件,則加載單元302根據(jù)該ActiveX組件的功能信息加載該ActiveX組件,且觸發(fā)第二子類化單元303子類化該ActiveX組件的窗體,使得第二橋梁插件可以對該ActiveX組件的窗體行為進行控制。在子類化ActiveX組件的窗體之后,創(chuàng)建單元303在該主程序的窗體中創(chuàng)建MDI子窗體,并觸發(fā)第二子類化單兀302子類化該MDI子窗體??蛇x的,在子類化該ActiveX組件的窗體之后,創(chuàng)建MDI子窗體之前,可由判斷單元306判斷ActiveX組件的窗體是否能轉(zhuǎn)換為MDI子窗體,若能,則觸發(fā)創(chuàng)建單元304,若不能,則終止轉(zhuǎn)換的過程。在加載單元302加載該ActiveX組件之后,第二橋梁插件可以識別出該ActiveX組件的窗體類型,如若該ActiveX組件的窗體為模態(tài)窗體,則該ActiveX組件的窗體不能轉(zhuǎn)換為MD I子窗體;若該Ac t i veX組件的窗體不是模態(tài)窗體,則該Ac t i veX組件的窗體能轉(zhuǎn)換為MDI子窗體。此外,當主程序限定了 MDI子窗體打開的數(shù)量時,判斷單元307還可以判斷當前主程序中MDI子窗體的打開數(shù)目是否達到門限值,若是,則ActiveX組件的窗體不能轉(zhuǎn)換為MDI子窗體;若否,則所述ActiveX組件的窗體能轉(zhuǎn)換為MDI子窗體。在實際應(yīng)用中,判斷ActiveX組件的窗體是否能轉(zhuǎn)換為MDI子窗體還可以使用其它的限制條件,具體此處不作限定。在創(chuàng)建了 MDI子窗體之后,嵌入單元305將子類化后的ActiveX組件的窗體嵌入到子類化后的MDI子窗體內(nèi),使得所述ActiveX組件的窗體作為所述主程序的MDI子窗體被顯示和操作。 當ActiveX組件的窗體被子類化后,第二橋梁插件截獲系統(tǒng)對該ActiveX組件窗體的各種指令消息,對該ActiveX組件的窗體進行控制;具體為,將ActiveX組件窗體的操作界面推送到上述主程序的MDI子窗體內(nèi),以ActiveX組件的具體操作界面填充該MDI子窗體,使得該MDI子窗體實現(xiàn)業(yè)務(wù)功能,該業(yè)務(wù)功能即ActiveX組件的業(yè)務(wù)功能,并將該ActiveX組件的窗體行為關(guān)聯(lián)該MDI子窗體的窗體行為(由于該MDI子窗體已經(jīng)被子類化,故也可以對該MDI子窗體的窗體行為進行控制),使得該ActiveX組件的窗體與該MDI子窗體具有相同的控制邏輯,則用戶在該MDI子窗體進行操作時,同時也是對該ActiveX組件進行操作。可選的,在將ActiveX組件的窗體嵌入到主程序的MDI子窗體后,窗體調(diào)整單元306根據(jù)主程序窗體的大小調(diào)整ActiveX組件窗體的位置和大小。在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可 輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準。
權(quán)利要求
1.一種多文檔界面的轉(zhuǎn)換方法,其特征在于,包括 當主程序啟動后,子類化所述主程序的窗體; 若ActiveX組件被調(diào)用,則加載所述ActiveX組件,并子類化所述ActiveX組件的窗體;所述ActiveX組件為在所述主程序中擴展的一種功能附件; 在所述主程序的窗體中創(chuàng)建多文檔界面MDI子窗體,并子類化所述MDI子窗體; 將子類化后的所述ActiveX組件的窗體嵌入到子類化后的所述MDI子窗體內(nèi),使得所述ActiveX組件的窗體作為所述主程序的MDI子窗體被顯示和操作。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述將ActiveX組件的窗體嵌入到所述MDI子窗體內(nèi)之后包括 根據(jù)所述主程序的窗體的大小調(diào)整所述ActiveX組件的窗體的位置和大小。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述在主程序的窗體中創(chuàng)建MDI子窗體之前包括 判斷所述ActiveX組件的窗體是否能轉(zhuǎn)換為MDI子窗體,若能,則觸發(fā)所述在主程序的窗體中創(chuàng)建MDI子窗體的步驟;若不能,則終止轉(zhuǎn)換的過程。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述判斷ActiveX組件是否能轉(zhuǎn)換為MDI子窗體具體為 判斷所述ActiveX組件的窗體是否為模態(tài)窗體,若是,則所述ActiveX組件的窗體不能轉(zhuǎn)換為MDI子窗體;若否,則所述ActiveX組件的窗體能轉(zhuǎn)換為MDI子窗體。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述判斷ActiveX組件是否能轉(zhuǎn)換為MDI子窗體具體為 判斷所述MDI子窗體的打開數(shù)目是否達到門限值,若是,則所述ActiveX組件的窗體不能轉(zhuǎn)換為MDI子窗體;若否,則所述ActiveX組件的窗體能轉(zhuǎn)換為MDI子窗體。
6.一種多文檔界面的轉(zhuǎn)換裝置,其特征在于,包括 第一子類化單元,用于當主程序啟動后,子類化所述主程序的窗體; 加載單元,用于當ActiveX組件被調(diào)用時,加載所述ActiveX組件; 第二子類化單元,用于在加載ActiveX組件之后,子類化所述ActiveX組件的窗體;以及在創(chuàng)建MDI子窗體之后,子類化所述MDI子窗體; 創(chuàng)建單元,用于子類化所述ActiveX組件的窗體之后,在所述主程序的窗體中創(chuàng)建多文檔界面MDI子窗體; 嵌入單元,用于在子類化所述MDI子窗體之后,將子類化后的所述ActiveX組件的窗體嵌入到子類化后的所述MDI子窗體內(nèi),使得所述ActiveX組件的窗體作為所述主程序的MDI子窗體被顯示和操作。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括 窗體調(diào)整單元,用于根據(jù)所述主程序的窗體的大小調(diào)整所述ActiveX組件的窗體的位置和大小。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述裝置還包括 判斷單元,用于判斷所述ActiveX組件的窗體是否能轉(zhuǎn)換為MDI子窗體,若能,則觸發(fā)創(chuàng)建單元;若不能,則終止轉(zhuǎn)換的過程。
全文摘要
本發(fā)明實施例公開了一種多文檔界面的轉(zhuǎn)換方法以及相關(guān)裝置,用于將ActiveX組件的窗體轉(zhuǎn)換為主程序的MDI子窗體。本發(fā)明實施例方法包括當主程序啟動后,子類化所述主程序的窗體;若ActiveX組件被調(diào)用,則加載所述ActiveX組件,并子類化所述ActiveX組件的窗體;所述ActiveX組件為在所述主程序中擴展的一種功能附件;在所述主程序的窗體中創(chuàng)建多文檔界面MDI子窗體,并子類化所述MDI子窗體;將子類化后的所述ActiveX組件的窗體嵌入到子類化后的所述MDI子窗體內(nèi),使得所述ActiveX組件的窗體作為所述主程序的MDI子窗體被顯示和操作。此外,本發(fā)明還提供了實現(xiàn)該方法的相關(guān)裝置。
文檔編號G06F3/048GK102810041SQ20111014730
公開日2012年12月5日 申請日期2011年6月2日 優(yōu)先權(quán)日2011年6月2日
發(fā)明者李國彬 申請人:深圳市金蝶友商電子商務(wù)服務(wù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
静安区| 东光县| 泸西县| 新竹县| 泽普县| 巧家县| 西乌| 长顺县| 永新县| 保山市| 清原| 武强县| 瓦房店市| 辉南县| 嘉善县| 将乐县| 阿巴嘎旗| 大理市| 安远县| 东台市| 仙桃市| 鄂托克前旗| 叶城县| 依安县| 景德镇市| 婺源县| 古浪县| 城口县| 健康| 靖江市| 社会| 明水县| 微山县| 灵丘县| 奎屯市| 潞西市| 囊谦县| 上虞市| 高青县| 天门市| 措勤县|