[發明專利]一種基于Managed C實現WPF窗體與GDI窗體消息互操作的方法有效
| 申請號: | 201210517801.6 | 申請日: | 2012-12-05 |
| 公開(公告)號: | CN103034490A | 公開(公告)日: | 2013-04-10 |
| 發明(設計)人: | 鄭婉清;林秀全;張生言 | 申請(專利權)人: | 上海創圖網絡科技發展有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 上海科盛知識產權代理有限公司 31225 | 代理人: | 趙志遠 |
| 地址: | 200072 上海市閘北*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 managed 實現 wpf 窗體 gdi 消息 操作 方法 | ||
技術領域
本發明涉及一種界面制作相關技術,尤其是涉及一種基于Managed?C實現WPF窗體與GDI窗體消息互操作的方法。
背景技術
WPF是基于DirectX技術的圖形系統,利用硬件加速及圖形向量渲染,從呈現效果及性能上大大改善了傳統2D圖形窗口用戶體驗,其完善的ui架構能快速幫助程序開發出媲美Mac的酷炫界面。
在WPF中,傳統的窗口概念已發生了改變,窗口也是其渲染系統中一個普通的可視元素,并且與其它所有界面元素統一渲染,用戶無法直接在這窗口區域繪制自己圖形(因為一個區域只能用一種方式來渲染)。
三維引擎或者其它的很多傳統的應用程序,都是基于GDI的窗口句柄,截獲其重繪消息,將自定義的渲染結果呈現在窗口上,并通過GDI的消息機制獲取用戶的輸入,其中GDI(Graphics?Device?Interface)為圖形設備接口,其為Windows的子系統,負責在視訊顯示器和打印機上顯示圖形。
隨著計算機硬件快速發展,用戶對軟件的體驗要求越來越高,GDI窗口及相關的技術在開發用戶圖形界面上已漸漸顯得力不從心。
利用WPF提供HWNDHOST技術,可以將GDI窗口嵌入到wpf中應用程序中,在GDI窗口區域實現自定義渲染,而在非GDI區域實現各種用好的圖形界面。
當前實現WPF窗體的方法有多種,不管是使用D3DImage還是使用HWNDHOST技術,都普遍存在兩者交互性差如,窗口大小變化時出現閃爍,應用程序無法接收鼠標鍵盤一些特殊輸入消息等問題。
發明內容
本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種適用范圍廣、擴展性好、操作方便的基于Managed?C實現WPF窗體與GDI窗體消息互操作的方法。
本發明的目的可以通過以下技術方案來實現:
一種基于Managed?C實現WPF窗體與GDI窗體消息互操作的方法,其特征在于,包括:
采用Managed?c++創建一個GDI窗口,并提供相應的API,同時生成一個DLL;在WPF應用程序中定義一個派生自HwndHost的窗口類,在該窗口類將DLL提供的GDI作為其子窗口,并以委托方式實現GDI窗口中需要處理的消息。
具體過程如下:
a)采用c#定義一個派生自HwndHost的窗口類;
b)采用Managed?c++注冊一個GDI窗口,實現將.net程序傳過來的委托函數轉化為c++可處理的函數指針;
c)判斷是否注冊成功,若為是,創建一個GDI窗口,并返回該窗口的句柄,執行步驟d),否則,返回步驟b);
d)將GDI窗口作為HwndHost類的子窗口,得到一個在WPF中呈現自定義應用程序的GDI子窗口;
e)將GDI子窗口放在WPF窗口上,該GDI子窗口和其它WPF控件一樣放在WPF窗口的任意位置;
f)GDI子窗口自定義圖形渲染,并實現圖形呈現的更新;同時WPF各個界面控件根據WPF消息的機制及渲染機制實現接收、轉發用戶輸入及界面呈現;
g)GDI窗口根據WPF用戶輸入期望的圖形呈現,WPF界面同時將圖形的屬性變化通過豐富的控件UI反饋給用戶。
所述的派生自HwndHost的窗口類中包括窗口過程函數、鼠標構子處理函數和鍵盤鉤子處理函數。
所述的GDI子窗口根據窗口過程函數實現圖形呈現的更新。
與現有技術相比,本發明具有以下優點:
1)適用范圍廣,提供獨立于應用GDI窗口dll庫,該dll可以很多windows程序中使用;
2)擴展性好,使用Managed?c++實現的dll,可以直接在Dot?Net?c#語言中直接使用,避免使用p/invoke聲明大量的API及結構體,也提供了更好的擴展性;
3)操作方便,將窗口過程在應用程序中實現,大大方便應用中各種消息處理過程。
附圖說明
圖1為本發明實現的流程圖。
具體實施方式
下面結合附圖和具體實施例對本發明進行詳細說明。
實施例
如圖1所示,一種基于Managed?C實現WPF窗體與GDI窗體消息互操作的方法,包括;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海創圖網絡科技發展有限公司,未經上海創圖網絡科技發展有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201210517801.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種帶保溫層的魚藥烘箱
- 下一篇:一種用于吸取帶孔薄片的自動送料機構





