[发明专利]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.vipzhuanli.com/pat/books/201310529590.2/2.html,转载请声明来源钻瓜专利网。