让UI开发轻松而快乐,用SonicUI引擎实现常见UI效果

本文介绍了一款用于Windows平台的UI引擎——SonicUI,它能简化UI开发,支持多格式图片、自绘按钮、异形窗体等功能。通过实例展示了引擎如何实现常见UI特效,提升开发效率。
摘要由CSDN通过智能技术生成

代码已开源到:

http://www.codeproject.com/KB/GDI/SonicUI.aspx

欢迎下载试用。

 

摘要:作为windows工程师,UI开发是无可避免的工作,无论你是写一个供销存系统,还是一款聊天IM,UI开发总是会占据你大量的时间。接下来展示的将是一种windows下的非常轻松快捷的UI开发解决方案,实现大家实际工作中经常需要实现的UI特效,力争将你从繁复的UI工作中解放出来,将注意力投入到更有挑战性的工作中去。

关键字:UI引擎 异形窗体 动画按钮 gdi引擎 自绘控件 轻便

作为windows工程师,UI开发是无可避免的工作,无论你是写一个供销存系统,还是一款聊天IM,UI开发总是会占据你大量的时间。前段时间在公司开发项目中,带着些许私心实现了一个构想了较长时间的UI引擎,自已在使用过程中感觉极大的加快了UI开发的效率,希望与大家分享,并用大家的建议来不断完善。

接下来将以几个在实际工作中常见的UI开发问题为例,介绍实现方法及效果,相信这几个问题能引起客户端UI开发同仁的共鸣。
1.多格式图片支持
2.文字和超链接
3.自绘按钮
4.脏处理与区域刷新
5.异形窗体(包括像素级透明异形窗体)

1.多格式图片支持
UI开发离不开图片,windows的api提供了一些加载图片的方法,如常用的LoadImage,使用很简单。但其功能也跟其用法一样简单,只能加载bmp,ico等几种格式。众所周知,bmp是不带alpha通道的,一旦需要实现阴影等alpha渐变的效果,系统提供的api就有些捉襟见肘了。当然很多人会想到大名鼎鼎的CxImage,这也是个不错的选择。我在内部也是封装了CxImage帮忙加载和保存多格式的图片,但加载之后的图像数据处理都是自处理的了,因为CxImage在处理RGB转hsl,旋转等特效时大量使用了浮点运算,效率不能使人十分满意。我把所有的浮点运算都转为整形运算,并大量使用了SSE2指令进行优化,实测证明在旋转,HSL转换,灰化等特效时,效率可以提高4-10倍(CPU为T2330 1.6GHz)。图片加载支持三种方式:从文件;从资源;从dc。需要说明的是从资源加载时请将资源类型命名为IMAGE。
演示代码如下:

//GetSonicUI是引擎导出的唯一函数,是类厂和引擎总控,负责创建对象和销毁对象等。
ISonicImage * pImg = GetSonicUI()->CreateImage();
pImg-&
  • 1
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 79
    评论
评论 79
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值