專利名稱:在應(yīng)用程序中制作通用圖形界面的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機(jī)圖形界面制作方法。
背景技術(shù):
請參閱圖1 (a),通常一個具有圖形界面的應(yīng)用程序是基于一種圖形引 擎開發(fā)的,這種圖形引擎又是基于一種圖形硬件API開發(fā)的,圖形硬件API 再直接控制如顯示器、打印機(jī)等的硬件輸出設(shè)備。
請參閱圖l (b),有些具有圖形界面的應(yīng)用程序較為簡單,也可能直接 基于一種圖形硬件API開發(fā),而省略圖形引擎。
目前所廣泛使用的圖形硬件API包括GDI/GDI+、 DirectX和0penGL三 大類?;谄渲腥魏我环N圖形硬件API所開發(fā)的圖形應(yīng)用程序,只能運(yùn)行 于這一種圖形硬件API之下。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種在應(yīng)用程序中制作通用圖形界 面的方法,所制作的通用圖形界面可以運(yùn)行于任何圖形API之下。
為解決上述技術(shù)問題,本發(fā)明在應(yīng)用程序中制作通用圖形界面的方法 包括如下步驟
第1步,原始應(yīng)用程序通過嵌入程序的載入模塊載入所述嵌入程序, 所述嵌入程序包括所述載入模塊,還包括驅(qū)動模塊和控件模塊;
第2步,所述載入模塊向原始應(yīng)用程序的圖形引擎或圖形硬件API申請繪制圖片;所述載入模塊向原始應(yīng)用程序申請獲得windows消息的優(yōu)先 處理權(quán);
第3步,所述驅(qū)動模塊以第2步所申請的圖片為基礎(chǔ),向所述控件模 塊提供圖形軟件API;所述驅(qū)動模塊向所述控件模塊轉(zhuǎn)發(fā)windows消息,并 將所述控件模塊對windows消息的反饋返回至原始應(yīng)用程序;
第4步,所述控件模塊調(diào)用外界的圖形界面,或者所述控件模塊自行 編寫圖形界面,將該圖形界面顯示于第2步所申請繪制的圖片。
本發(fā)明提供了一種嵌入程序,包括載入模塊、驅(qū)動模塊和控件模塊。 其中的載入模塊將所述嵌入程序載入到原始應(yīng)用程序,驅(qū)動模塊為控件模 塊提供了一種圖形軟件API。無論控件模塊調(diào)用外部圖形界面還是自行編寫 圖形界面,都只依賴于驅(qū)動模塊所提供的圖形軟件API,而不依賴于原始應(yīng) 用程序的圖形引擎或圖形硬件API。因此,本發(fā)明提供了一種在應(yīng)用程序中 制作通用圖形界面的方法,所述的圖形界面可以應(yīng)用于基于任何圖形引擎 或圖形硬件API的應(yīng)用程序。
下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步詳細(xì)的說明
圖1是現(xiàn)有的圖形應(yīng)用程序的開發(fā)結(jié)構(gòu)示意圖2是本發(fā)明在應(yīng)用程序中制作通用圖形界面的方法的流程圖3是采用本發(fā)明所述方法制作圖形界面的開發(fā)結(jié)構(gòu)示意圖。
具體實施例方式
請參閱圖2,本發(fā)明在應(yīng)用程序中制作通用圖形界面的方法包括如下步驟
第1步,載入模塊在原始應(yīng)用程序中載入嵌入程序,所述嵌入程序包 括所述載入模塊,還包括驅(qū)動模塊和控件模塊;
在原始應(yīng)用程序中載入嵌入程序,可以采用hook技術(shù),這是一種較為
成熟的技術(shù),無須對原始應(yīng)用程序進(jìn)行任何修改;也可以在原始應(yīng)用程序 的特定位置加入載入指令,這需要對原始應(yīng)用程序進(jìn)行細(xì)微改動;
第2步,所述載入模塊向原始應(yīng)用程序的圖形引擎或圖形硬件API申 請繪制圖片;所述載入模塊向原始應(yīng)用程序申請獲得windows消息的優(yōu)先 處理權(quán);
申請繪制圖片是任何圖形引擎或圖形硬件API都具有的最基本的功能, 申請獲得windows消息的優(yōu)先權(quán)是原始應(yīng)用程序可以提供的;
第3步,所述驅(qū)動模塊以第2步所申請的圖片為基礎(chǔ),向所述控件模 塊提供圖形軟件API;所述驅(qū)動模塊向所述控件模塊轉(zhuǎn)發(fā)windows消息,并 將所述控件模塊對windows消息的反饋返回至原始應(yīng)用程序;
所述嵌入程序的驅(qū)動模塊相當(dāng)于為控件模塊提供了 一個圖形軟件API , 使得控件模塊可以基礎(chǔ)該圖形軟件API開發(fā)具有圖形界面的應(yīng)用程序,而 無須考慮原始應(yīng)用程序的圖形引擎或圖形硬件API;同時驅(qū)動模塊才擔(dān)當(dāng)起 原始應(yīng)用程序和控件模塊之間的windows消息和針對windows消息的反饋 的互相傳遞工作;
第4步,所述控件模塊調(diào)用原始應(yīng)用程序和嵌入程序之外的應(yīng)用程序 的圖形界面;或者所述控件模塊提供一個編程環(huán)境,可以在控件模塊自行編寫具有圖形界面的應(yīng)用程序,并采集所編寫應(yīng)用程序的圖形界面。所述 控件模塊再將調(diào)入或采集的圖形界面顯示于第2步所申請的圖片。
采用上述方法制作圖形界面的開發(fā)結(jié)構(gòu)示意圖請參閱圖3,由于嵌入程
序的驅(qū)動模塊為控件模塊提供了一種圖形軟件API,無論控件模塊調(diào)用外部
程序的圖形界面還是自行編寫程序采集圖形界面,都只依賴于驅(qū)動模塊所
提供的圖形軟件API,而不依賴于原始應(yīng)用程序的圖形引擎或圖形硬件API。
下面茲以兩個具體實施例對本發(fā)明所述方法給予更加具體的闡述
其一,采用本發(fā)明所述方法在3D游戲中插入IE。 由于3D游戲是基于DirectX或0penGL開發(fā)的,而IE是基于GDI開發(fā) 的,因此現(xiàn)有的技術(shù)方案無法在3D游戲中嵌入IE。
采用本發(fā)明所述方法,可以實現(xiàn)在3D游戲中插入IE,具體包括如下步
驟
第1步,載入模塊采用hook技術(shù)在3D游戲中載入嵌入程序,無須對 該3D游戲進(jìn)行任何修改;所述嵌入程序包括所述載入模塊,還包括驅(qū)動模 塊和控件模塊;
第2步,所述載入模塊向3D游戲的圖形引擎或圖形硬件API申請繪制 圖片;所述載入模塊還向該3D游戲申請獲得windows消息的優(yōu)先處理權(quán);
第3步,所述驅(qū)動模塊以第2步所申請的圖片為基礎(chǔ),向所述控件模 塊提供圖形軟件API;所述驅(qū)動模塊向所述控件模塊轉(zhuǎn)發(fā)windows消息,并 將所述控件模塊對windows消息的反饋返回至該3D游戲;
第4步,所述控件模塊調(diào)用IE的圖形界面,通過所述驅(qū)動模塊提供的圖形軟件API顯示于所述載入模塊所申請的圖片。
其二,采用本發(fā)明所述方法在視頻中插入一個交互程序。
通常情況下,視頻中無法嵌入應(yīng)用程序,只有部分DVD視頻支持一些 簡單的交互程序。
采用本發(fā)明所述方法,可以實現(xiàn)在視頻中插入任意交互程序,具體包
括如下步驟
第1步,載入模塊采用hook技術(shù)在視頻中載入嵌入程序,無須對該視 頻進(jìn)行任何修改;所述嵌入程序包括所述載入模塊,還包括驅(qū)動模塊和控 件模塊;
第2步,所述載入模塊向視頻的圖形引擎或圖形硬件API申請繪制圖 片;所述載入模塊還向該視頻申請獲得windows消息的優(yōu)先處理權(quán);
第3步,所述驅(qū)動模塊以第2步所申請的圖片為基礎(chǔ),向所述控件模 塊提供圖形軟件API;所述驅(qū)動模塊向所述控件模塊轉(zhuǎn)發(fā)windows消息,并 將所述控件模塊對windows消息的反饋返回至該視頻;
第4步,所述控件模塊提供了一個編程環(huán)境,通過所述控件模塊編寫 一個交互程序,并將該交互程序的圖形面通過所述驅(qū)動模塊提供的圖形軟 件API顯示于所述載入模塊所申請的圖片。
綜上所述,無論是以靜態(tài)資源為主的游戲紋理方式,還是以動態(tài)資源 為主的視頻方式,本發(fā)明均可在應(yīng)用程序中制作圖形界面,并且所制作的 圖形界面還可以在各種不同應(yīng)用程序中使用。這大大簡化了為不同應(yīng)用程 序定制圖形界面的復(fù)雜程序。
權(quán)利要求
1.一種在應(yīng)用程序中制作通用圖形界面的方法,其特征是所述方法包括如下步驟第1步,原始應(yīng)用程序通過嵌入程序的載入模塊載入所述嵌入程序,所述嵌入程序包括所述載入模塊,還包括驅(qū)動模塊和控件模塊;第2步,所述載入模塊向原始應(yīng)用程序的圖形引擎或圖形硬件API申請繪制圖片;所述載入模塊向原始應(yīng)用程序申請獲得windows消息的優(yōu)先處理權(quán);第3步,所述驅(qū)動模塊以第2步所申請的圖片為基礎(chǔ),向所述控件模塊提供圖形軟件API;所述驅(qū)動模塊向所述控件模塊轉(zhuǎn)發(fā)windows消息,并將所述控件模塊對windows消息的反饋返回至原始應(yīng)用程序;第4步,所述控件模塊調(diào)用外界的圖形界面,或者所述控件模塊自行編寫圖形界面,將該圖形界面顯示于第2步所申請繪制的圖片。
2. 根據(jù)權(quán)利要求l所述的在應(yīng)用程序中制作通用圖形界面的方法,其 特征是所述方法的第l步中,載入模塊通過hook技術(shù)在原始應(yīng)用程序中 載入嵌入程序。
3. 根據(jù)權(quán)利要求l所述的在應(yīng)用程序中制作通用圖形界面的方法,其特征是所述方法的第1步中,通過在原始應(yīng)用程序中增加載入指令載入嵌入程序。
4. 根據(jù)權(quán)利要求l所述的在應(yīng)用程序中制作通用圖形界面的方法,其特征是所述方法的第4步中,所述控件模塊調(diào)用原始應(yīng)用程序和所述嵌入程序之外的應(yīng)用程序的圖形界面,并將該圖形界面通過所述驅(qū)動模塊提供的圖形軟件API顯示于所述載入模塊所申請的圖片。
5.根據(jù)權(quán)利要求l所述的在應(yīng)用程序中制作通用圖形界面的方法,其 特征是所述方法的第4步中,所述控件模塊自行編寫應(yīng)用程序并采集所 編寫應(yīng)用程序的圖形界面,并將該圖形界面通過所述驅(qū)動模塊提供的圖形 軟件API顯示于所述載入模塊所申請的圖片。
全文摘要
本發(fā)明公開了一種在應(yīng)用程序中制作通用界面的方法,包括第1步,原始應(yīng)用程序通過嵌入程序的載入模塊載入所述嵌入程序,所述嵌入程序包括載入模塊、驅(qū)動模塊和控件模塊;第2步,載入模塊向原始應(yīng)用程序的圖形引擎或圖形硬件API申請繪制圖片;還申請獲得windows消息的優(yōu)先處理權(quán);第3步,驅(qū)動模塊以第2步所申請的圖片為基礎(chǔ),向控件模塊提供圖形軟件API;驅(qū)動模塊向控件模塊轉(zhuǎn)發(fā)windows消息,并將控件模塊對windows消息的反饋返回至原始應(yīng)用程序;第4步,控件模塊調(diào)用外界的圖形界面,或者控件模塊自行編寫圖形界面,將該圖形界面顯示于第2步所申請的圖片。本發(fā)明可以應(yīng)用于任何圖形引擎或圖形硬件API。
文檔編號G06F9/44GK101556535SQ20081004322
公開日2009年10月14日 申請日期2008年4月8日 優(yōu)先權(quán)日2008年4月8日
發(fā)明者峰 廖, 斌 謝 申請人:盛大計算機(jī)(上海)有限公司