软件换肤技术在 BCB 中的实现

孟婆丶斷紅尘

孟婆丶斷紅尘

2016-01-29 11:58

软件换肤技术在 BCB 中的实现,软件换肤技术在 BCB 中的实现

软件换肤技术在 BCB 中的实现

作者:吴康彬

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/cyuyanjiaocheng/)

下载源代码

  看一个软件是否优秀,除了功能健全、性能稳定、容易操作之外,软件界面的美观越来越受到人们的关注。人们不满足于传统的矩形windows窗体,不规则窗体的软件到处可见,更进一步发展到软件界面由用户根据自己的爱好自由控制,真正实现了软件对用户的友好性。而要实现这一功能,软件换肤技术就是基础。下面我就介绍一种简单明了的方法来制作一个登陆对话框 ,本程序编程环境C++Builder:
  首先由程序员根据功能要求定义界面元素(控件),特别值得注意的是控件的名字。如下图:


图一:元素界面

  其次,美工人员根据该界面元素画图。程序员和美工之间的桥梁是通过一个xml描述文件,也就是说美工每画好一幅图后就要填写一个xml文件。该xml文件需要包括的内容有:每个界面元素在该图中的坐标、元素的 尺寸、元素在窗体中的坐标、当鼠标放上、按下、弹起以及普通、失效等效果图在整个图片中的位置。如下图:


图二:美工制作的登陆窗口元素图

  接下去填写xml描述文件,如下:

<?xml version = "1.0" encoding="UTF-8"?  <root <control <ctrlNameBMin</ctrlName  //控件名称 <size                    //控件尺寸 <height18</height    //控件高度 <width18</width      //控件宽度 </size <formPos                //控件在窗体中的位置 <left302</left     //x坐标 <top2</top         //y坐标 </formPos <action                //事件效果图片位置 <normal //普通              <left0</left//x坐标              <top268</top  //y坐标 </normal <mouseUp //鼠标放上              <left0</left              <top291</top </mouseUp <mouseDown//鼠标按下              <left0</left              <top314</top </mouseDown
<disable/ //失效
<focus/ //获取焦点 </action </control <control <ctrlNameBClose</ctrlName <size <height18</height <width18</width </size <formPos <left327</left <top2</top </formPos <action <normal <left28</left <top268</top </normal <mouseUp <left28</left <top291</top </mouseUp <mouseDown <left28</left <top314</top </mouseDown </action </control
... //省略了其它的一些元素"<controls/"
</root
  到此美工人员的任务就算大功告成了。(其实程序员和美工 可以同步进行,程序员不必去考虑界面元素的布局,因为整个软件最终的效果都是有美工控制,程序员要实现的只是解析xml数据,使界面元素按照给定的参数显示就可以。)
  如果程序中每次动态的去解析xml文件,然后安置控件,有可能会比较慢,特别是当界面元素比较多的时候,频繁的读和解析xml会有明显的停顿。所以我的做法是这样的 :首先定义一个结构体,获取所有的界面元素。分析xml文件把所有的控件元素信息一次性解析完。这样速度快很多。
typedef struct Ctrls    {   String ctrlName; //控件名称    TPoint formPos; //控件在窗体中的位置 int width; //控件宽度 int height; //控件高度 bool hasNormal; //是否有普通效果图片 bool hasMouseUp; //是否有鼠标放上效果图片 bool hasMouseDown; //是否有鼠标按下效果图片 bool hasDisable; //是否有失效效果图片
bool hasFocus; //是否有得到焦点时效果图片 TPoint normal; //普通效果图片在整个图片中的位置 TPoint mouseUp; //鼠标放上效果图片在整个图片中
展开更多 50%)
分享

猜你喜欢

软件换肤技术在 BCB 中的实现

C语言教程 C语言函数
软件换肤技术在 BCB 中的实现

ActiveSkin 4.3 软件换肤在VC中的实现

C语言教程 C语言函数
ActiveSkin 4.3 软件换肤在VC中的实现

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在BCB中实现TRichEdit的自动格式化

编程语言 网络编程
在BCB中实现TRichEdit的自动格式化

组件技术在Delphi中的实现(1)

Delphi
组件技术在Delphi中的实现(1)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

BCB中实现动态创建组件

编程语言 网络编程
BCB中实现动态创建组件

在BCB中轻松使用ActiveX控件

编程语言 网络编程
在BCB中轻松使用ActiveX控件

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

修改填充图案

修改填充图案

ActiveSkin 4.3 软件换肤在VC中的实现

ActiveSkin 4.3 软件换肤在VC中的实现
下拉加载更多内容 ↓