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

多文檔窗體中控制子窗體的方法和裝置的制作方法

文檔序號:6425953閱讀:176來源:國知局
專利名稱:多文檔窗體中控制子窗體的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及多文檔窗體技術(shù)領(lǐng)域,具體涉及ー種多文檔窗體中控制子窗體的方法和裝置。
背景技術(shù)
多文檔窗體(MDI,Multiple Document Interface)是一種具有主子結(jié)構(gòu)的窗體體系,每個(gè)多文檔窗體必須有ー個(gè)主框架窗體,主框架窗體擁有客戶區(qū)窗體,每個(gè)主框架窗體都有且只有ー個(gè)客戶區(qū)窗體,客戶區(qū)窗體是子窗體的直接父窗體,負(fù)責(zé)管理主框架窗體的客戶區(qū)以及創(chuàng)建子窗體。用戶一次可以打開多個(gè)文檔,每個(gè)文檔對應(yīng)不同的子窗體,主框架窗體的菜單會自動(dòng)隨著當(dāng)前活動(dòng)的子窗體的變化而變化,可以對子窗體進(jìn)行層疊、平鋪等各種操作,子窗體可以在客戶區(qū)內(nèi)定位、改變大小、最大化和最小化,當(dāng)最大化子窗體時(shí),它 將占滿主框架窗體的整個(gè)客戶區(qū)。目前,多文檔子窗體中控制子窗體的方法是通過頁簽控制方式來實(shí)現(xiàn),用戶可以通過對頁簽欄的操作實(shí)現(xiàn)對子窗體的控制,具體為編寫ー個(gè)自定義控件,將自定義控件放在客戶區(qū)的上方作為頁簽欄,頁簽欄上的每ー個(gè)頁簽代表一個(gè)子窗體,自定義控件與主框架窗體進(jìn)行交互,一方面通過提供操作接ロ接收來自于主框架窗體的子窗體的狀態(tài)信息,根據(jù)子窗體的狀態(tài)信息來繪制頁簽欄,另ー方面通過拋出鼠標(biāo)事件來通知主框架程序執(zhí)行子窗體的控制操作,例如關(guān)閉子窗體、切換子窗體等。采用上述頁簽控制方式來控制子窗體,需要増加主框架窗體的程序代碼,主框架窗體和自定義控件之間必須具有很高的耦合性,并且上述方式的復(fù)用性比較低。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供ー種多文檔窗體中控制子窗體的方法和裝置。ー種多文檔窗體中控制子窗體的方法,包括啟動(dòng)主程序,獲取所述主程序的界面中客戶區(qū)窗體的句柄,在所述客戶區(qū)窗體中分割出ー個(gè)非客戶區(qū);按照所述客戶區(qū)窗體的句柄,子類化所述客戶區(qū)窗體;當(dāng)彈出新的子窗體時(shí),獲取每個(gè)子窗體的信息,根據(jù)所述每個(gè)子窗體的信息在所述非客戶區(qū)繪制一個(gè)用于控制所述每個(gè)子窗體的頁簽欄;當(dāng)鼠標(biāo)操作所述頁簽欄時(shí),獲取所述鼠標(biāo)的操作信息,當(dāng)所述鼠標(biāo)的操作信息會改變所述頁簽欄的顯示狀態(tài)時(shí),則根據(jù)所述每個(gè)子窗體的信息以及所述鼠標(biāo)的操作信息在所述非客戶區(qū)重新繪制所述頁簽欄,并通知主程序根據(jù)鼠標(biāo)的操作信息控制子窗體。。ー種多文檔窗體中控制子窗體的裝置,包括插件接ロ模塊,用于當(dāng)主程序啟動(dòng)時(shí),獲取所述主程序的界面中客戶區(qū)窗體的句柄,在所述客戶區(qū)窗體中分割出ー個(gè)非客戶區(qū),;窗體消息控制模塊,用于按照所述客戶區(qū)窗體的句柄,子類化所述客戶區(qū)窗體;
子窗體頁簽控制模塊,用于當(dāng)彈出新的子窗體時(shí),獲取每個(gè)子窗體的信息,根據(jù)所述每個(gè)子窗體的信息在所述非客戶區(qū)繪制ー個(gè)用于控制所述每個(gè)子窗體的頁簽欄;當(dāng)鼠標(biāo)操作所述頁簽欄時(shí),獲取所述鼠標(biāo)的操作信息,當(dāng)所述鼠標(biāo)的操作信息會改變所述頁簽欄的顯示狀態(tài)時(shí),則根據(jù)所述每個(gè)子窗體的信息以及所述鼠標(biāo)的操作信息在所述非客戶區(qū)重新繪制所述頁簽欄,并通知主程序根據(jù)鼠標(biāo)的操作信息控制子窗體。。本發(fā)明實(shí)施例通過插件接ロ模塊在主程序啟動(dòng)時(shí),創(chuàng)建子窗體頁簽控制模塊,窗體消息控制模塊通過子類化客戶區(qū)窗體,捕獲客戶區(qū)窗體的消息,子窗體頁簽控制模塊接收窗體消息控制模塊傳遞過來的消息,獲知客戶區(qū)窗體的行為和狀態(tài),實(shí)現(xiàn)在非客戶區(qū)顯示ー個(gè)用于控制子窗體的頁簽欄。通過在主框架窗體中掛接ー個(gè)插件,主程序啟動(dòng)后自動(dòng)實(shí)現(xiàn)通過頁簽控制方式來控制子窗體,具有高內(nèi)聚、低耦合的特性,復(fù)用性高,可移植性好并可以靈活插抜。


圖I是本發(fā)明實(shí)施例提供的ー種多文檔窗體中控制子窗體的方法的ー個(gè)流程圖; 圖2是本發(fā)明實(shí)施例提供的ー種多文檔窗體中控制子窗體的裝置的邏輯結(jié)構(gòu)圖;圖3是本發(fā)明實(shí)施例提供的ー種多文檔窗體中控制子窗體的方法的插件設(shè)計(jì)類圖;圖4是本發(fā)明實(shí)施例提供的ー種多文檔窗體中控制子窗體的方法的主程序啟動(dòng)卸載時(shí)序圖;圖5是本發(fā)明實(shí)施例提供的ー種多文檔窗體中控制子窗體的方法的客戶區(qū)窗體中非客戶區(qū)的消息操作時(shí)序圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供ー種多文檔窗體中控制子窗體的方法,本發(fā)明實(shí)施例還提供相應(yīng)的裝置。以下分別進(jìn)行詳細(xì)說明。參照圖1,本發(fā)明實(shí)施例提供了ー種多文檔窗體中控制子窗體的方法,具體可以包括如下步驟101、啟動(dòng)主程序,獲取主程序的界面中客戶區(qū)窗體的句柄,在客戶區(qū)窗體分割出ー個(gè)非客戶區(qū);具體的,可以通過計(jì)算非客戶區(qū)的尺寸,按照非客戶區(qū)的尺寸在客戶區(qū)窗體分割出非客戶區(qū)。102、按照客戶區(qū)窗體的句柄,子類化客戶區(qū)窗體;眾所周知,WINDOWS是ー個(gè)基于消息的系統(tǒng),消息在WINDOWS的對象之間進(jìn)行至傳遞。子類(SubClass)化技術(shù)存在與消息系統(tǒng)之中,本發(fā)明實(shí)施例就是利用這些機(jī)制來操縱、修改甚至丟棄那些在操作系統(tǒng)或是進(jìn)程中傳遞的消息,以求改變系統(tǒng)的ー些行為。子類化技術(shù)用來截獲窗體或控件之間的消息,當(dāng)然是消息在到達(dá)目的窗體之前完成的操作。這些被截獲的消息既可以保留也可以修改它們的狀態(tài),之后就繼續(xù)發(fā)送到目的地。子類化技術(shù)繼承了上級窗體的ー些屬性和方法,并且加入了自己特有的內(nèi)容。在本實(shí)施例中,通過子類化技術(shù)可以截獲窗體或控件之間的消息,獲知客戶區(qū)窗體的狀態(tài)和行為,但是并不是客戶區(qū)窗體內(nèi)所有的消息,都需要截獲,當(dāng)然,在技術(shù)實(shí)現(xiàn)上,可以先全部截獲然后再選取自己所需的即可,也可以在子類化時(shí)就制定需要截獲的客戶區(qū)窗體的前置和/或后置消息。103、在非客戶區(qū)繪制一個(gè)用于控制每個(gè)子窗體的頁簽欄。當(dāng)彈出新的子窗體時(shí),由于客戶區(qū)窗體被子類化,可以獲取到每個(gè)子窗體的信息,根據(jù)每個(gè)子窗體的信息在非客戶區(qū)繪制一個(gè)用于控制每個(gè)子窗體的頁簽欄,具體的,頁簽欄可以包括頁簽和按鈕,頁簽欄上的一個(gè)頁簽代表一個(gè)子窗體,按鈕可以有多個(gè),例如最大化按鈕、最小化按鈕、關(guān)閉按鈕以及前/后按鈕等。當(dāng)鼠標(biāo)操作頁簽欄時(shí),獲取鼠標(biāo)的操作信息,當(dāng)鼠標(biāo)的操作信息會改變頁簽欄的顯示狀態(tài)時(shí),例如鼠標(biāo)的操作信息會導(dǎo)致前移頁簽或后移頁簽,或者鼠標(biāo)的操作信息為切換當(dāng)前活動(dòng)的子窗體,從而導(dǎo)致需要改變頁簽的字體、顔色等,則根據(jù)每個(gè)子窗體的信息以及鼠標(biāo)的操作信息在非客戶區(qū)重新繪制頁簽欄,并通知主程序根據(jù)鼠標(biāo)的操作信息控制子窗體。 繪制頁簽欄,具體過程可以為根據(jù)每個(gè)子窗體的信息計(jì)算頁簽欄中頁簽的布局;創(chuàng)建設(shè)備場景,在設(shè)備場景中根據(jù)布局繪制頁簽欄的所有頁簽;將設(shè)備場景復(fù)制到非客戶區(qū)的頁簽欄區(qū)域中,若頁簽欄上還有按鈕,則再繪制頁簽欄上的按鈕。采用上述繪制頁簽欄的方法,可以實(shí)現(xiàn)所有頁簽在頁簽欄中的整體偏移((如果所有頁簽的寬度超過頁簽欄的寬度),還可以防止由于重畫頁簽欄導(dǎo)致頁簽欄閃動(dòng)。假設(shè)鼠標(biāo)的操作信息為在最大化按鈕、最小化按鈕或者關(guān)閉按鈕上松開鼠標(biāo),此時(shí)鼠標(biāo)的操作不會改變頁簽欄的顯示狀態(tài),不需要重新繪制頁簽欄,只需通知主程序根據(jù)鼠標(biāo)的操作信息控制子窗體。假設(shè)鼠標(biāo)的操作信息為在前移按鈕或后移按鈕上按下鼠標(biāo),計(jì)算頁簽向前或向后偏移距離,重畫整個(gè)頁簽欄。假設(shè)鼠標(biāo)的操作信息為在頁簽上按下鼠標(biāo),從而激活當(dāng)前選擇頁簽的子窗體,重畫整個(gè)頁簽欄。假設(shè)鼠標(biāo)的操作信息為在其他按鈕上按下鼠標(biāo),重畫頁簽欄上所有按鈕。假設(shè)鼠標(biāo)的操作信息為移動(dòng)鼠標(biāo)到新頁簽上方,重新計(jì)算頁簽欄的頁簽的布局,重畫所有頁簽。假設(shè)鼠標(biāo)的操作信息為移動(dòng)鼠標(biāo)到新按鈕上方,重畫頁簽欄上所有按鈕。等到關(guān)閉所有子窗體時(shí),反子類化客戶區(qū)窗體。請參閱圖2,本發(fā)明實(shí)施例提供ー個(gè)多文檔窗體中控制子窗體的裝置的實(shí)施例,具體包括插件接ロ模塊201,用于當(dāng)主程序啟動(dòng)時(shí),獲取主程序的界面中客戶區(qū)窗體的句柄,在客戶區(qū)窗體中分割出ー個(gè)非客戶區(qū),窗體消息控制模塊202,用于按照客戶區(qū)窗體的句柄,子類化客戶區(qū)窗體;子窗體頁簽控制模塊203,用于當(dāng)彈出新的子窗體時(shí),獲取每個(gè)子窗體的信息,根據(jù)每個(gè)子窗體的信息在非客戶區(qū)繪制一個(gè)用于控制每個(gè)子窗體的頁簽欄;當(dāng)鼠標(biāo)操作頁簽欄時(shí),獲取鼠標(biāo)的操作信息,當(dāng)鼠標(biāo)的操作信息會改變頁簽欄的顯示狀態(tài)時(shí),則根據(jù)每個(gè)子窗體的信息以及鼠標(biāo)的操作信息在非客戶區(qū)重新繪制頁簽欄,并通知主程序根據(jù)鼠標(biāo)的操作信息控制子窗體。子窗體頁簽控制模塊203還用于當(dāng)關(guān)閉主程序時(shí),反子類化客戶區(qū)窗體。子窗體頁簽控制模塊203具體用于計(jì)算非客戶區(qū)的尺寸,按照非客戶區(qū)的尺寸在客戶區(qū)窗體分割出非客戶區(qū)。窗體消息控制模塊202具體用于在子類化客戶區(qū)窗體吋,制定需要截獲的所述客戶區(qū)窗體的前置/后置消息。子窗體頁簽控制模塊203具體用于根據(jù)每個(gè)子窗體的信息計(jì)算頁簽欄中頁簽的布局;創(chuàng)建設(shè)備場景,在設(shè)備場景中根據(jù)布局繪制頁簽欄的所有頁簽;將設(shè)備場景復(fù)制到非客戶區(qū)的頁簽欄區(qū)域中。上述實(shí)施例通過插件接ロ模塊在主程序啟動(dòng)時(shí),創(chuàng)建子窗體頁簽控制模塊,窗體消息控制模塊通過子類化客戶區(qū)窗體,捕獲客戶區(qū)窗體的消息,子窗體頁簽控制模塊接收 窗體消息控制模塊傳遞過來的消息,獲知客戶區(qū)窗體的行為和狀態(tài),實(shí)現(xiàn)在非客戶區(qū)顯示ー個(gè)用于控制子窗體的頁簽欄。通過在主框架窗體中掛接ー個(gè)插件,主程序啟動(dòng)后自動(dòng)實(shí)現(xiàn)通過頁簽控制方式來控制子窗體,具有高內(nèi)聚、低耦合的特性,復(fù)用性高,可移植性好并可以靈活插拔。上述實(shí)施例可用于眾多通用或?qū)S玫挠?jì)算機(jī)系統(tǒng)環(huán)境或配置中。例如個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、網(wǎng)絡(luò)PC、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。下面將從編程角度針對上述實(shí)施例進(jìn)行詳細(xì)闡述,首先請參閱圖3,圖3是多文檔窗體中控制子窗體的方法的插件設(shè)計(jì)類圖,具體如下所述I.插件接ロ類(Chameleon)作為自定義控件掛接在主程序的客戶區(qū)窗體上,主程序啟動(dòng)時(shí)創(chuàng)建子窗體頁簽控制類 clsMDITab。
權(quán)利要求
1.一種多文檔窗體中控制子窗體的方法,其特征在于,包括 啟動(dòng)主程序,獲取所述主程序的界面中客戶區(qū)窗體的句柄,在所述客戶區(qū)窗體中分割出一個(gè)非客戶區(qū); 按照所述客戶區(qū)窗體的句柄,子類化所述客戶區(qū)窗體; 當(dāng)彈出新的子窗體時(shí),獲取每個(gè)子窗體的信息,根據(jù)所述每個(gè)子窗體的信息在所述非客戶區(qū)繪制一個(gè)用于控制所述每個(gè)子窗體的頁簽欄; 當(dāng)鼠標(biāo)操作所述頁簽欄時(shí),獲取所述鼠標(biāo)的操作信息,當(dāng)所述鼠標(biāo)的操作信息會改變所述頁簽欄的顯示狀態(tài)時(shí),則根據(jù)所述每個(gè)子窗體的信息以及所述鼠標(biāo)的操作信息在所述非客戶區(qū)重新繪制所述頁簽欄,并通知主程序根據(jù)鼠標(biāo)的操作信息控制子窗體。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 當(dāng)關(guān)閉主程序時(shí),反子類化所述客戶區(qū)窗體。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于, 所述在所述主程序的界面的客戶區(qū)窗體中分割出一個(gè)非客戶區(qū)的步驟,具體為 計(jì)算所述非客戶區(qū)的尺寸,按照所述非客戶區(qū)的尺寸在所述客戶區(qū)窗體分割出所述非客戶區(qū)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述子類化所述客戶區(qū)窗體,包括 制定需要截獲的所述客戶區(qū)窗體的前置和/或后置消息。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于, 繪制所述頁簽欄,具體為 根據(jù)所述每個(gè)子窗體的信息計(jì)算所述頁簽欄中頁簽的布局; 創(chuàng)建設(shè)備場景,在所述設(shè)備場景中根據(jù)所述布局繪制所述頁簽欄的所有頁簽; 將所述設(shè)備場景復(fù)制到所述非客戶區(qū)的頁簽欄區(qū)域中。
6.—種多文檔窗體中控制子窗體的裝置,其特征在于,包括 插件接口模塊,用于當(dāng)主程序啟動(dòng)時(shí),獲取所述主程序的界面中客戶區(qū)窗體的句柄,在所述客戶區(qū)窗體中分割出一個(gè)非客戶區(qū),; 窗體消息控制模塊,用于按照所述客戶區(qū)窗體的句柄,子類化所述客戶區(qū)窗體; 子窗體頁簽控制模塊,用于當(dāng)彈出新的子窗體時(shí),獲取每個(gè)子窗體的信息,根據(jù)所述每個(gè)子窗體的信息在所述非客戶區(qū)繪制一個(gè)用于控制所述每個(gè)子窗體的頁簽欄;當(dāng)鼠標(biāo)操作所述頁簽欄時(shí),獲取所述鼠標(biāo)的操作信息,當(dāng)所述鼠標(biāo)的操作信息會改變所述頁簽欄的顯示狀態(tài)時(shí),則根據(jù)所述每個(gè)子窗體的信息以及所述鼠標(biāo)的操作信息在所述非客戶區(qū)重新繪制所述頁簽欄,并通知主程序根據(jù)鼠標(biāo)的操作信息控制子窗體。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述子窗體頁簽控制模塊還用于當(dāng)關(guān)閉主程序時(shí),反子類化所述客戶區(qū)窗體。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于, 所述子窗體頁簽控制模塊具體用于計(jì)算所述非客戶區(qū)的尺寸,按照所述非客戶區(qū)的尺寸在所述客戶區(qū)窗體分割出所述非客戶區(qū)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于, 所述窗體消息控制模塊具體用于在子類化所述客戶區(qū)窗體時(shí),制定需要截獲的所述客戶區(qū)窗體的前置和/或后置消息。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于, 所述子窗體頁簽控制模塊具體用于根據(jù)所述每個(gè)子窗體的信息計(jì)算所述頁簽欄中頁簽的布局;創(chuàng)建設(shè)備場景,在所述設(shè)備場景中根據(jù)所述布局繪制所述頁簽欄的所有頁簽;將所述設(shè)備場景復(fù)制到所述非客戶區(qū)的頁簽欄區(qū)域中。
全文摘要
本發(fā)明提供一種多文檔窗體中控制子窗體的方法,還提供一種多文檔窗體中控制子窗體的裝置,在本發(fā)明中,通過插件接口模塊在主程序啟動(dòng)時(shí),創(chuàng)建子窗體頁簽控制模塊,窗體消息控制模塊通過子類化客戶區(qū)窗體,捕獲客戶區(qū)窗體的消息,子窗體頁簽控制模塊接收窗體消息控制模塊傳遞過來的消息,獲知客戶區(qū)窗體的行為和狀態(tài),實(shí)現(xiàn)在非客戶區(qū)顯示一個(gè)用于控制子窗體的頁簽欄。通過在主框架窗體中掛接一個(gè)插件,主程序啟動(dòng)后自動(dòng)實(shí)現(xiàn)通過頁簽控制方式來控制子窗體,具有高內(nèi)聚、低耦合的特性,復(fù)用性高,可移植性好并可以靈活插拔。
文檔編號G06F3/048GK102819377SQ20111015542
公開日2012年12月12日 申請日期2011年6月10日 優(yōu)先權(quán)日2011年6月10日
發(fā)明者李國彬 申請人:深圳市金蝶友商電子商務(wù)服務(wù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
五原县| 进贤县| 盐边县| 莒南县| 中方县| 高淳县| 通化市| 祁东县| 呈贡县| 隆尧县| 桦南县| 富阳市| 罗山县| 肇东市| 呈贡县| 探索| 石景山区| 宿松县| 涞水县| 神池县| 山阴县| 牙克石市| 滁州市| 南召县| 建水县| 门头沟区| 阿拉善右旗| 石狮市| 汶上县| 潍坊市| 阳谷县| 忻州市| 井冈山市| 玉林市| 台州市| 江北区| 尉犁县| 家居| 五家渠市| 赤城县| 蓬溪县|