[發明專利]基于繪圖引擎的屏幕顯示方法有效
| 申請號: | 200610084457.0 | 申請日: | 2006-05-24 |
| 公開(公告)號: | CN101078982A | 公開(公告)日: | 2007-11-28 |
| 發明(設計)人: | 謝雷;黃建峰;肖南;潘建 | 申請(專利權)人: | 北京壁虎科技有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 中國國際貿易促進委員會專利商標事務所 | 代理人: | 康建忠 |
| 地址: | 100007北京市東城區東*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 繪圖 引擎 屏幕 顯示 方法 | ||
技術領域
本發明涉及一種基于繪圖引擎的屏幕顯示方法。更具體地,本發明涉及一種基于繪圖引擎的畫中畫屏幕顯示方法。
背景技術
計算機操作系統和應用軟件通常不能直接調用顯示設備和其中的圖形加速功能,必須通過系統中的一組專用應用程序接口(API)來調用,這就是繪圖引擎。繪圖引擎可以通過顯示設備驅動程序來操作顯示設備,可以為操作系統和各種應用程序提供各種顯示用接口函數和顯示功能。
操作系統和應用程序不需要知道計算機用的是什么顯示設備,只需要調用繪圖引擎所提供的接口函數和功能就能實現顯示功能,通過這種分工合作,極大地降低了軟件開發周期和成本。比如需要在顯示器上畫出一個三維的正方體,不需要程序人員針對不同的顯卡而寫大段的代碼,只需要調用繪圖引擎的一組函數并把一些相關的參數分配給它們,由它們來完成這個功能。目前開放的繪圖引擎主要有微軟提供的DDraw、D3D和IT業界多家公司共同制定的OPENGL。
但是,當前很多需要屏幕繪制的應用程序以獨占全屏模式運行,由于繪圖引擎獨占全屏模式的繪圖特性的干擾,如果一個使用繪圖引擎獨占全屏模式繪制的應用程序正在運行,則其它任何同樣需要在顯示器屏幕繪制的應用程序就無法正?;虿荒茱@示其內容或界面。
發明內容
因此,為克服上述技術問題而提出了本發明。本發明的目的是提供一種基于繪圖引擎的畫中畫屏幕顯示方法,能在使用繪圖引擎獨占全屏繪圖模式繪制的畫面之上,顯示其它應用程序的窗體。
本發明的另一目的是,提供一種基于繪圖引擎的畫中畫屏幕顯示方法,能在使用繪圖引擎獨占全屏繪圖模式繪制的畫面之上,顯示其它應用程序的窗體并與其自由交互。
為此目的,本發明提供一種基于繪圖引擎的畫中畫屏幕顯示方法,用于在使用繪圖引擎獨占全屏繪圖模式繪制的第二應用程序(P2)的畫面之上顯示第一應用程序(P1)的窗口,該方法包括下列步驟:在第一應用程序(P1)中設置系統消息掛鉤,以便獲取第二應用程序(P2)所使用的繪圖引擎的圖形繪制接口地址和屬性設置接口地址,用重新實現的圖形繪制接口和屬性設置接口來替換原有的圖形繪制接口和屬性設置接口;所述重新實現的屬性設置接口獲取繪圖引擎的繪制模式,當繪制模式為“非拷貝模式”時,將其修改為“拷貝模式”;更改第二應用程序(P2)的窗口消息處理過程以屏蔽“失去焦點”消息;由重新實現的圖形繪制接口獲取第一應用程序(P1)的窗口圖形數據和第二應用程序(P2)的繪屏數據,并疊加這兩部分數據;以及使繪圖引擎按原有圖形繪制接口在屏幕上繪制疊加后的混合數據。
附圖說明
下面將參照在附圖中所表示的非限制性實施例來進一步說明本發明,其中:
圖1示出根據本發明的基于繪圖引擎的畫中畫屏幕顯示方法的詳細流程圖。
圖2示出根據本發明的基于繪圖引擎的畫中畫屏幕顯示方法的分層處理關系示意圖。
圖3示出采用根據本發明的基于繪圖引擎的畫中畫屏幕顯示方法顯示的應用程序窗體的實際運行效果示意圖。
圖4示出采用根據本發明的基于繪圖引擎的畫中畫屏幕顯示方法顯示的應用程序窗體的另一實際運行效果示意圖。
具體實施方式
圖1示出根據本發明的基于繪圖引擎的畫中畫屏幕顯示方法的詳細流程圖。根據該流程圖,如果應用程序P1要使用本方法來顯示畫中畫效果,而應用程序P2使用繪圖引擎E1并以獨占全屏模式顯示,則本發明的基于繪圖引擎的畫中畫屏幕顯示方法第一步首先在應用程序P1中設置系統消息掛鉤(圖1.A),以便P1在“全屏P2”啟動時能夠獲取P2的進程地址。
掛鉤是操作系統中消息處理機制的一個要點,通過安裝各種掛鉤,應用程序能夠設置相應的子例程來監視系統里的消息傳遞以及在這些消息到達目標窗口程序之前處理它們。掛鉤的種類很多,每種掛鉤可以截獲并處理相應的消息,如鍵盤掛鉤可以截獲鍵盤消息,鼠標掛鉤可以截獲鼠標消息,外殼掛鉤可以截獲啟動和關閉應用程序的消息,日志掛鉤可以監視和記錄輸入事件。掛鉤分為線程專用掛鉤和全局掛鉤,線程專用掛鉤只監視指定的線程,要監視系統中的所有線程,必須用到全局掛鉤。對于全局掛鉤,掛鉤函數必須包含在獨立的動態鏈接庫中,這樣才能被各種相關聯的應用程序調用。
其中,設置系統消息掛鉤的具體方法如下:a)在P1中實現一個消息處理過程(MSGHandler0);b)調用系統應用程序接口(如SetWindowHook),將MSGHandler0的地址作為參數傳給該接口以完成系統掛鉤設置過程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京壁虎科技有限公司,未經北京壁虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200610084457.0/2.html,轉載請聲明來源鉆瓜專利網。





