亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于ManagedC實現(xiàn)WPF窗體與GDI窗體消息互操作的方法

文檔序號:6383297閱讀:327來源:國知局
專利名稱:一種基于Managed C實現(xiàn)WPF窗體與GDI窗體消息互操作的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種界面制作相關(guān)技術(shù),尤其是涉及一種基于Managed C實現(xiàn)WPF窗體與GDI窗體消息互操作的方法。
背景技術(shù)
WPF是基于DirectX技術(shù)的圖形系統(tǒng),利用硬件加速及圖形向量渲染,從呈現(xiàn)效果及性能上大大改善了傳統(tǒng)2D圖形窗口用戶體驗,其完善的Ui架構(gòu)能快速幫助程序開發(fā)出媲美Mac的酷炫界面。在WPF中,傳統(tǒng)的窗口概念已發(fā)生了改變,窗口也是其渲染系統(tǒng)中一個普通的可視元素,并且與其它所有界面元素統(tǒng)一渲染,用戶無法直接在這窗口區(qū)域繪制自己圖形(因為一個區(qū)域只能用一種方式來渲染)。三維引擎或者其它的很多傳統(tǒng)的應(yīng)用程序,都是基于GDI的窗口句柄,截獲其重繪消息,將自定義的渲染結(jié)果呈現(xiàn)在窗口上,并通過GDI的消息機(jī)制獲取用戶的輸入,其中⑶I (Graphics Device Interface)為圖形設(shè)備接口,其為Windows的子系統(tǒng),負(fù)責(zé)在視訊顯示器和打印機(jī)上顯示圖形。隨著計算機(jī)硬件快速發(fā)展,用戶對軟件的體驗要求越來越高,GDI窗口及相關(guān)的技術(shù)在開發(fā)用戶圖形界面上已漸漸顯得力不從心。利用WPF提供HWNDH0ST技術(shù),可以將⑶I窗口嵌入到wpf中應(yīng)用程序中,在⑶I窗口區(qū)域?qū)崿F(xiàn)自定義渲染,而在非GDI區(qū)域?qū)崿F(xiàn)各種用好的圖形界面。當(dāng)前實現(xiàn)WPF窗體的方法有多種,不管是使用D3DImage還是使用HWNDH0ST技術(shù),都普遍存在兩者交互性差如,窗口大小變化時出現(xiàn)閃爍,應(yīng)用程序無法接收鼠標(biāo)鍵盤一些特殊輸入消息等問題。

發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種適用范圍廣、擴(kuò)展性好、操作方便的基于Managed C實現(xiàn)WPF窗體與⑶I窗體消息互操作的方法。本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn)一種基于Managed C實現(xiàn)WPF窗體與⑶I窗體消息互操作的方法,其特征在于,包括采用Managed c++創(chuàng)建一個⑶I窗口,并提供相應(yīng)的API,同時生成一個DLL ;在WPF應(yīng)用程序中定義一個派生自HwndHost的窗口類,在該窗口類將DLL提供的⑶I作為其子窗口,并以委托方式實現(xiàn)⑶I窗口中需要處理的消息。具體過程如下a)采用c#定義一個派生自HwndHost的窗口類;b)采用Managed c++注冊一個⑶I窗口,實現(xiàn)將· net程序傳過來的委托函數(shù)轉(zhuǎn)化為C++可處理的函數(shù)指針;c)判斷是否注冊成功,若為是,創(chuàng)建一個⑶I窗口,并返回該窗口的句柄,執(zhí)行步驟d),否則,返回步驟b);d)將⑶I窗口作為HwndHost類的子窗口,得到一個在WPF中呈現(xiàn)自定義應(yīng)用程序的⑶I子窗口 ;e)將⑶I子窗口放在WPF窗口上,該⑶I子窗口和其它WPF控件一樣放在WPF窗口的任意位置;
f)⑶I子窗口自定義圖形渲染,并實現(xiàn)圖形呈現(xiàn)的更新;同時WPF各個界面控件根據(jù)WPF消息的機(jī)制及渲染機(jī)制實現(xiàn)接收、轉(zhuǎn)發(fā)用戶輸入及界面呈現(xiàn);g)⑶I窗口根據(jù)WPF用戶輸入期望的圖形呈現(xiàn),WPF界面同時將圖形的屬性變化通過豐富的控件Π反饋給用戶。所述的派生自HwndHost的窗口類中包括窗口過程函數(shù)、鼠標(biāo)構(gòu)子處理函數(shù)和鍵盤鉤子處理函數(shù)。所述的⑶I子窗口根據(jù)窗口過程函數(shù)實現(xiàn)圖形呈現(xiàn)的更新。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點I)適用范圍廣,提供獨立于應(yīng)用⑶I窗口 dll庫,該dll可以很多windows程序中使用;2)擴(kuò)展性好,使用Managed c++實現(xiàn)的dll,可以直接在Dot Net c#語言中直接使用,避免使用p/invoke聲明大量的API及結(jié)構(gòu)體,也提供了更好的擴(kuò)展性;3)操作方便,將窗口過程在應(yīng)用程序中實現(xiàn),大大方便應(yīng)用中各種消息處理過程。


圖1為本發(fā)明實現(xiàn)的流程圖。
具體實施例方式下面結(jié)合附圖和具體實施例對本發(fā)明進(jìn)行詳細(xì)說明。實施例如圖1所不,一種基于Managed C實現(xiàn)WPF窗體與⑶I窗體消息互操作的方法,包括;采用Managed c++創(chuàng)建一個⑶I窗口,并提供相應(yīng)的API,同時生成一個DLL ;在WPF應(yīng)用程序中定義一個派生自HwndHost的窗口類,在該窗口類將DLL提供的⑶I作為其子窗口,并以委托方式實現(xiàn)⑶I窗口中需要處理的消息。本發(fā)明的具體過程如下I)編寫好⑶I窗口類程序,并調(diào)試通過,以dll的方式輸出;2)在WPF程序中實現(xiàn)一個派生自HwndHost的窗口類,在該類中實現(xiàn)一個窗口過程函數(shù),提供窗口類的名稱,將窗口過程函數(shù)及窗口類名作為參數(shù),調(diào)用GDI窗口創(chuàng)建子窗口,并子窗口作為HwndHost的子窗口 ;3)在⑶I窗口中實現(xiàn)自定義圖形渲染,wpf窗口接收鼠標(biāo),鍵盤等各種用戶輸入,并根據(jù)需求轉(zhuǎn)發(fā)給GDI窗口,GDI窗口根據(jù)從程序中獲取的條件更新渲染;圖形屬性更新通過wpf屬性綁定機(jī)制及時的反饋在程序界面上。
權(quán)利要求
1.一種基于Managed C實現(xiàn)WPF窗體與⑶I窗體消息互操作的方法,其特征在于,包括 采用Managed c++創(chuàng)建一個⑶I窗口,并提供相應(yīng)的API,同時生成一個DLL ;在WPF應(yīng)用程序中定義一個派生自HwndHost的窗口類,在該窗口類將DLL提供的GDI作為其子窗口,并以委托方式實現(xiàn)⑶I窗口中需要處理的消息。
2.根據(jù)權(quán)利要求1所述的一種基于ManagedC實現(xiàn)WPF窗體與GDI窗體消息互操作的方法,其特征在于,具體過程如下 a)采用c#定義一個派生自HwndHost的窗口類; b)采用Managedc++注冊一個⑶I窗口,實現(xiàn)將· net程序傳過來的委托函數(shù)轉(zhuǎn)化為c++可處理的函數(shù)指針; c)判斷是否注冊成功,若為是,創(chuàng)建一個GDI窗口,并返回該窗口的句柄,執(zhí)行步驟d),否則,返回步驟b); d)將⑶I窗口作為HwndHost類的子窗口,得到一個在WPF中呈現(xiàn)自定義應(yīng)用程序的GDI子窗口 ; e)將⑶I子窗口放在WPF窗口上,該⑶I子窗口和其它WPF控件一樣放在WPF窗口的任意位置; f)GDI子窗口自定義圖形渲染,并實現(xiàn)圖形呈現(xiàn)的更新;同時WPF各個界面控件根據(jù)WPF消息的機(jī)制及渲染機(jī)制實現(xiàn)接收、轉(zhuǎn)發(fā)用戶輸入及界面呈現(xiàn); g)⑶I窗口根據(jù)WPF用戶輸入期望的圖形呈現(xiàn),WPF界面同時將圖形的屬性變化通過豐富的控件Π反饋給用戶。
3.根據(jù)權(quán)利要求2所述的一種基于ManagedC實現(xiàn)WPF窗體與GDI窗體消息互操作的方法,其特征在于,所述的派生自HwndHost的窗口類中包括窗口過程函數(shù)、鼠標(biāo)構(gòu)子處理函數(shù)和鍵盤鉤子處理函數(shù)。
4.根據(jù)權(quán)利要求3所述的一種基于ManagedC實現(xiàn)WPF窗體與GDI窗體消息互操作的方法,其特征在于,所述的GDI子窗口根據(jù)窗口過程函數(shù)實現(xiàn)圖形呈現(xiàn)的更新。
全文摘要
本發(fā)明涉及一種基于Managed C實現(xiàn)WPF窗體與GDI窗體消息互操作的方法,包括采用Managed c++創(chuàng)建一個GDI窗口,并提供相應(yīng)的API,同時生成一個DLL;在WPF應(yīng)用程序中定義一個派生自HwndHost的窗口類,在該窗口類將DLL提供的GDI作為其子窗口,并以委托方式實現(xiàn)GDI窗口中需要處理的消息。與現(xiàn)有技術(shù)相比,本發(fā)明具有適用范圍廣、擴(kuò)展性好、操作方便等優(yōu)點。
文檔編號G06F9/44GK103034490SQ20121051780
公開日2013年4月10日 申請日期2012年12月5日 優(yōu)先權(quán)日2012年12月5日
發(fā)明者鄭婉清, 林秀全, 張生言 申請人:上海創(chuàng)圖網(wǎng)絡(luò)科技發(fā)展有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1