新疆知识产权公共服务平台
一种基于GDI/GDI+美化WinForm组件的方法
商品类型

专利

专利号

CN111240655A

所属行业

先进制造与自动化

归属方

红有软件股份有限公司

上架日期

2020-07-14 23:17:49

交易方式

转让

交易价格 面议
详细介绍
说明

 

[0001] 本发明涉及电子信息领域,尤其涉及一种基于GDI/GDI+美化WinForm组件的方法。

背景技术
[0002] 随着信息技术发展及普及,用户对信息系统界面接口的要求越来越高,一方面要求使用要流畅、无卡顿,另一方面要求操作界面要美观。微软提供的通用的WinForm组件库,已不能满足用户对界面美观个性化要求,如:窗口要使用圆角、按钮要特殊形状、滚动条要扁平化、随时响应用户操作等。现在通用的方法是选购一些商业化组件库,但是选购第三方组件库,需要花费相当一部分费用,对创业团队或者小微型信息技术公司来说,也是一笔额外支出。


发明内容
[0003] 本发明的目的在于提供一种基于GDI/GDI+美化WinForm组件的方法,从而解决现有技术中存在的前述问题。

[0004] 为了实现上述目的,本发明采用的技术方案如下:

[0005] 一种基于GDI/GDI+美化WinForm组件的方法,包括以下步骤:

[0006] S1、根据用户需求,确定需要进行美化的WinForm组件;

[0007] S2、针对需要进行美化的所述WinForm组件,创建一个新组件,所述新组建继承原来的相应的WinForm组件;

[0008] S3、在所述新组件中重载原组件中的onPaint方法和事件;

[0009] S4、根据原组件的属性信息,找到组件中每个元素的坐标;在所述新组件中的对应坐标位置,调用GDI+的相关绘制接口,并输出重新绘制的图形元素,作为所述新组件中的图形元素;

[0010] S5、在所述新组件的元素上,绘制所述图形元素在进行输入设备的操作事件时的图形界面;

[0011] S6、利用步骤S1-S5,创建满足用户需求的WinForm组件,用以开发新的软件产品。

[0012] 优选的,可以创建一个或一个以上的组件,构成组件库;其中每一个组件作为所述组件库中的一个类别。

[0013] 优选的,所述新组件中继承自原WinForm组件中的变量、属性以及构造参数均不进行修改。

[0014] 优选的,所述新组件中的所述图形元素的绘制包括计算绘制区域、元素坐标位置和绘制内容。

[0015] 优选的,所述新组件中图形元素为根据用户需求进行绘制的图形。

[0016] 优选的,使用所述新组件进行软件开发时,其调用方法与原WinForm组件的调用方法一致。

[0017] 本发明的有益效果是:本发明提供了一种基于GDI/GDI+美化WinForm组件的方法,既能解决用户对界面的特殊要求,又不需要花费额外的费用,并且在进行新的软件开发过程中不需要学习另外的操作方法;本发明可以对图形进行自由创作,具有高度的灵活性,可以满足用户对界面的特殊要求;基于windows最基础的图形设备接口GDI/GDI+进行创建,可靠性好,操作流畅,占用内存资源较少;基于面向对象的c#.net语言,更容易理解和掌握,普通程序员即可开发;与购买第三方组件库相比,节省了不小的费用。


附图说明
[0018] 图1是组件创建原理图;

[0019] 图2是组件创建流程图。


具体实施方式
[0020] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

[0021] 一种基于GDI/GDI+美化WinForm组件的方法,其实现原理如图1所示:利用一个新的组件,其组件中的变量、属性和构造参数均继承与原来的WinForm组件,进行软件开发时的调用方式均与原WinForm组件相同;但是在新的组件中对其内部的图形元素进行重新绘制,计算重新绘制的所述图形元素的坐标位置和输出的图形区域,并向所述重新绘制的所述图形元素添加输入设备的事件响应;最终创建美化的WinForm组件,并输出图形界面。

[0022] 基于GDI/GDI+美化WinForm组件的方法,实现步骤如图2所示:

[0023] S1、根据用户需求,确定需要进行美化的WinForm组件;如:用户需要一种特殊的按钮,则新创建一个按钮库组件,继承原winform的Button组件;

[0024] S2、针对需要进行美化的所述WinForm组件,创建一个新组件,所述新组建继承原来的相应的WinForm组件;

[0025] S3、在所述新组件中重载原组件中的onPaint方法,重载原组件中进行响应的鼠标或键盘等输入设备的事件;如:鼠标进入事件、鼠标离开事件、鼠标点击事件。

[0026] S4、根据原组件的属性信息,找到组件中每个元素的坐标;在所述新组件中的对应坐标位置,调用GDI/GDI+的相关绘制接口,并输出重新绘制的图形元素,作为所述新组件中的图形元素;

[0027] S5、在所述新组件的元素上,绘制所述图形元素在进行鼠标或键盘等输入设备的操作事件时的图形界面;

[0028] S6、利用步骤S1-S5,创建满足用户需求的WinForm组件,用以开发新的软件产品。

[0029] 上述方法中,所述新组件中继承自原WinForm组件中的变量、属性以及构造参数均不进行修改,一边在调用新组件进行软件开发时,调用方式与原WinForm组件一样。并且根据此方法可以创建一种或一种以上的组件,构成组件库;其中每一种组件作为所述组件库中的一个类别。

[0030] 上述方法的具体实现过程如下:

[0031] S101、选择一个现有的开发工具,新建一个可以进行分类的项目,其中的每一个类别可以作为一种组件,每一种组件的所述元素均位于同一个类别,整个类库即为所述组件库;

[0032] S201、修改每一类别的继承关系,使其分别继承WinForm中的相应组件;如Button、ListView、Panel等;

[0033] S301、在新建的类库中重新载入原组件中的方法和事件,例如:绘制图形方法(OnPaint)、重载鼠标进入事件(OnMouseEnter)、重载鼠标离开事件(OnMouseLeave)、重载鼠标按键按下事件(OnMouseDown)、重载鼠标按键抬起事件(OnMouseUp);

[0034] S401、根据原组件的属性信息,确定新建的类别中各组成元素的坐标位置,调用GDI/GDI+的相关绘制接口,进行新组件中图形元素的绘制,并计算出所述图形元素输出的坐标位置和显示区域;该输入元素坐标计算方法如下:

[0035] X坐标=该元素距父容器左端像素数;Y坐标=该元素距父容器顶端像素数;

[0036] 如果上下左右还有相邻元素,则以上边和左边的元素来定位,则计算方法如下:

[0037] X坐标=左边相邻元素X坐标+左边相邻元素显示区宽度+与左边相邻元素的水平间距;Y坐标=上边相邻元素Y坐标+上边相邻元素显示区域高度+上边相邻元素的垂直间距;

[0038] S501、对每一个所述图形元素进行分支判断;分别绘制所述图形元素在不同的所述事件进程中的输出图形界面;

[0039] S601、在所述开发工具上将完成上述过程的新建项目生成,即为新的组件库;所述组件库中的组件均为美化后的原WinForm组件。

[0040] 在实施例中进行上述过程使用的开发工具为Visual Studio 2012,开发语言为C#.NET。

[0041] 通过采用本发明公开的上述技术方案,得到了如下有益的效果:

[0042] 本发明提供了一种基于GDI/GDI+美化WinForm组件的方法,既能解决用户对界面的特殊要求,又不需要花费额外的费用,并且在进行新的软件开发过程中不需要学习另外的操作方法;本发明可以对图形进行自由创作,具有高度的灵活性,可以满足用户对界面的特殊要求;基于windows最基础的图形设备接口GDI/GDI+进行创建,可靠性好,操作流畅,占用内存资源较少;基于面向对象的c#.net语言,更容易理解和掌握,普通程序员即可开发;与购买第三方组件库相比,节省了不小的费用。

[0043] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。