[發明專利]wxWidgets框架下大規模組件自繪制的快速處理方法有效
| 申請號: | 201310529590.2 | 申請日: | 2013-10-31 |
| 公開(公告)號: | CN103544018A | 公開(公告)日: | 2014-01-29 |
| 發明(設計)人: | 劉貴華;范海鵬;文均波 | 申請(專利權)人: | 成都飛魚星科技開發有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 成都虹橋專利事務所(普通合伙) 51124 | 代理人: | 劉世平 |
| 地址: | 610041 四川省成都市高新區*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | wxwidgets 框架 大規模 組件 繪制 快速 處理 方法 | ||
技術領域
本發明涉及wxWidgets組件的繪制處理技術,特別涉及wxWidgets框架下大規模組件自繪制的快速處理方法。
背景技術
目前的應用程序開發,都極注重用戶界面的設計,漂亮精簡的應用程序廣受用戶的喜愛。同樣,在目前C++的圖形用戶界面程序開發框架中,wxWidgets,因其可視化的組件開發方式,而受到廣大程序員的喜愛,被應用到各種領域。
現有技術中關于wxWidgets組件自繪制方式有兩種:一種是從wxWindow或wxControl繼承,實現自己的自定義繪制函數,主要就是處理wxEVT_PAINT(繪制)和wxEVT_ERASE_BACKGROUND(擦除背景)事件;另一種方法是直接采用wxPanel控件(wxWindow類及其子類都可以,但wxPanel在wxFormbuilder可視化設計環境中,能以可視化的方式進行布局,從而減輕界面布局的工作),然后使用掛載事件表的方法來處理wxEVT_PAINT和wxEVT_ERASE_BACKGROUND事件。
上述兩種處理方式相比而言,采用掛載事件表的處理方式更加簡單、靈活;但由于不同的組件需要不同的繪制方法,因此大多數程序里就有很多不同的事件表,對于現代的圖形化界面發展趨勢,采用這種事件表來開發程序,效率也不是很高,維護仍然比較麻煩。
發明內容
本發明所要解決的技術問題是:提出一種wxWidgets框架下大規模組件自繪制的快速處理方法,解決現有技術中采用多個自定義組件掛載多個掛載事件表來處理不同的組件的自定義繪制,導致增加程序代碼的長度,降低了開發效率也增加了維護難度的問題。
本發明解決上述技術問題所采用的技術方案是:
wxWidgets框架下大規模組件自繪制的快速處理方法,包括:
定義事件掛載表類,在所述事件掛載表類的成員變量中保存自繪制組件對象的指針,事件掛載表類對象在接收到自繪制的事件時通過相應事件處理函數將自繪制組件對象的指針和接收到的事件轉發給對應的圖形繪制槽函數,從而實現組件的自定義繪制。
進一步,所述自繪制事件包括:繪制事件和擦除背景事件;所述相應事件處理函數包括:繪制事件處理函數和擦除背景事件處理函數;所述對應的圖形繪制槽函數包括:繪制槽函數和擦除背景槽函數。
進一步,所述事件掛載表類中有三個成員變量,其中一個成員變量保存自繪制組件對象的指針,另外兩個成員變量分別為繪制信號和擦除背景信號。
進一步,所述繪制事件處理函數用于將繪制事件、自繪制組件對象的指針添加到繪制信號中,并將該繪制信號轉發給繪制槽函數;所述擦除背景事件處理函數用于將擦除背景事件、自繪制組件對象的指針添加到擦除背景信號中,并將該擦除背景信號轉發給擦除背景槽函數。
進一步,該方法還包括:
在窗口初始化時,掛接事件表對象,初始化繪制信號和擦除背景信號,所述事件表對象為所述事件掛載表類的對象實例。
進一步,掛接事件表對象,初始化繪制信號和擦除背景信號的具體方式為:
用自繪制組件的指針作為構造函數的參數,創建一個事件掛載表類實例對象;
將該實例對象的繪制信號連接到繪制槽函數;
將該實例對象的擦除背景信號連接到擦除背景槽函數;
將該實例對象壓入自定義繪制組件的事件表棧中。
進一步,該方法還包括:
在窗口銷毀的時候,自繪制組件對象彈出已掛接的事件表。
本發明的有益效果是:采用單一簡單的事件掛載表類,實現繪制事件到信號的轉發,使得原本復雜的組件自定義繪制變成簡單的函數調用,在很大程度上提高程序員的開發效率,節省了開發時間。
具體實施方式
本發明旨在提出一種wxWidgets框架下大規模組件自繪制的快速處理方法,解決現有技術中采用多個自定義組件掛載多個掛載事件表來處理不同的組件的自定義繪制,導致增加程序代碼的長度,降低了開發效率也增加了維護的難度的問題。
本發明的核心思想是:為了使單一的事件掛載表類能實現不同組件的自定義繪制,我們需要在類成員變量中保存不同組件的實例。采用信號/槽模式,在事件掛載表類對象收到繪制事件時,通過信號/槽機制連接到真實的繪制函數上,把組件的實例和接收到的事件作為參數傳遞給真實的圖形繪制函數,從而實現組件自定義繪制。
下面結合具體實施方式對本發明的方案作進一步的描述:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都飛魚星科技開發有限公司,未經成都飛魚星科技開發有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310529590.2/2.html,轉載請聲明來源鉆瓜專利網。





