AppFace ,将美工和编程完全分开 - 一种全新的软件界面解决方案

原创 2005年04月28日 22:24:00

现在的软件用户和开发者越来越注重软件界面,因而在大部分的软件工程中,界面编程占据了越来越多的工作量 。开发者为了实现那些漂亮的控件或窗口以得到用户的青睐,通常会通过internet去寻找很多的控件,
然后把它们一个一个的运用在当前的工程当中。如果花费的工夫足够多,而且运气足够好的话,我们可以找到那些免费的控件来帮助我们完成工作。不过一般而言,开发者都需要对找到的控件进行二次开发,使之适应当前工程的需要。
  这样做至少有以下弊病:
1. 寻找合适的控件资料需要花费大量的时间和精力
2. 使用的第三方控件越多,越不利于软件工程质量的管理
3. 对于每个控件的界面实现,仍然需要不少的手工实现,所以工作量并不小
4. 对控件的编程一旦完成,如果要更改界面风格的话,几乎又要增加一倍的工作量

    要是有一种代码量小,可实现与众不同的界面效果,又方便在不同的工程中移植的界面
解决方案该多好啊!

    在这里,笔者向大家推荐一个优秀的软件界面设计方案 : 使用AUDK 来设计软件界面 。

    AUDK 全称是 AppFace  UI Development Kits 。它提供了一种将界面的美术设计和编程完全分开的解决方案。AppFace 支持 VB/VC/Delphi/BCB/.Net 。它通过自动对进程内的每个控件窗口以及边框窗口进行包装来实现重绘软件界面。整个工作是完全自动的,都由一个文件appface.dll 来完成。使用时只需执行加载和卸载 AppFace 的代码 ,极为方便。

    在现有的工程中添加 AUDK 非常简单,主要有三个步骤:

1.制作 URF 皮肤文件 。
   您可以使用AUDK 中提供的所见即所得的皮肤工具 SkinTool 制作自己的 URF 档,也可以

使用现成的 URF 档 ,AUDK 的安装包里提供了 9 个 URF ,您还可以到它的网站上去免费
下载 http://www.appface.com 。AppFace 对界面的定制是通过处理URF中的设定值来完成的,
而不是开发者在工程中通过代码来完成。

2. 在您的工程中申明 appface.dll 的输出函数
 appface.dll 是一个标准的Windows Dll 函数 ,在AUDK 中包含了 输出函数的 C 函数原型以及在各种语言下的申明范例,您将它直接Copy到自己的工程里就可以了

3. 在程序的开始处执行 SkinStart("yoururf.urf",0,0,1,0,0)
   在程序退出前执行   SkinRemove()
  
   整个过程就是这样,描述起来麻烦,但实现起来实现花不了一分钟 !

使用AUDK 至少有以下好处
1. 只需要一个dll,节约了大量的去收集各种控件的时间,
2. 对现有的工程只需添加几行代码,对现有的软件流程没有任何影响
3. 可以利用 SkinTool 设计自己别出心裁的皮肤界面,极大的增强软件的美观性
4. appface.dll  只有 210 KB ,和传统方法而言,可以极大的减小软件体积.

   当然,还有其它好处,您可以自己总结。

   笔者在最近的项目中使用了 Appface ,在客户处得到了意料不到的好评,而开发周期却缩短了一半 。

附图一:应用 AppFace 的软件界面:

image1.jpg

附图二:皮肤工具 SkinTool 的截图 :

   
  AppFace UI Development Kits 的中文版安装包里包含有 VB,VC,Delphi,BCB,VB.Net,C#.Net 的使用示例,而且有全中文的使用说明,使用极为方便。其最新版本的下载地址为 : http://www.appface.com 

   欢迎转载,以及来信交流。      黄金虎钳

Windows批处理 - 给自己写个库(3. INI文件的读取)

在写bat时,经常会碰到需要把参数和代码逻辑分开的需求,以方便对程序进行调试和设置,在程序开头统一声明变量就是为了这样的效果。如果进一步考虑,我希望我的设置和我的程序完全分开,那就需要用到配置文件了。...
  • xmousez
  • xmousez
  • 2016年11月10日 17:12
  • 1612

利用批处理(BAT)读取字符串空行判断及其他

最近要给一上项目发布安装包,需要使用批处理来配置一些环境变量
  • imston
  • imston
  • 2014年05月14日 17:00
  • 1528

完全跨域下单点登录的一种解决方案

根据oums单点登录解决方案介绍 一文我们知道单点登录有两种模型,一种是共同父域下的单点登录(例如域名都是 xx.a.com),还有就是完全跨域下的单点登录(例如域名是xx.a.com,xx.b.co...

一种局部ui界面切换解决方案

前段时间开发的动态加载ui界面的功能,在程序面版不太多的情况下还是减少了不少工作量,但由于开发的程序日渐复杂,才终于理解了那些可视化编程插件的意义。毕竟程序再怎么精练也有太多的重复功能,少量的变化就造...

关于Andrdoid编程中出现BufferQueue的“queueBuffer: fence is NULL”的一种解决方案

问题描述 今天编程的时候又遇到一个错误 我进行的是Android程序实现 使用的编译工具是Eclipse 可以看到最后导致的结果就是显示 无法读取文件“No file...” 实际上我后来通过DDM...
  • songyuc
  • songyuc
  • 2016年04月20日 14:19
  • 1065

全新楼宇自动化系统集成解决方案

  • 2008年02月14日 16:25
  • 6.57MB
  • 下载

Win10高分屏笔记本更改DPI后软件界面字体变模糊的解决方案之一

其实这也不是一种完整的解决方案,但是相比之下是比较好的。不得不说微软不完蛋,没有天理啊。 问题是这样的: 最近换了一台高分屏的笔记本,发现其推荐显示设置是放大到125%,因为100%的时候所有的字...
  • qysh123
  • qysh123
  • 2016年11月23日 20:13
  • 1604

树莓派安装docker,Go语言。附VNC软件安装重启后,进入白屏登录界面的解决方案

树莓派docker,go语言安装与配置,附安装VNC重启白屏方案。背景:课题要使用hyperledger,在ARM上应用。涉及到docker,go语言。之后会包括Nginx,Ngrok,数据库等。记录...
  • Zdp777
  • Zdp777
  • 2017年01月18日 23:24
  • 538
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AppFace ,将美工和编程完全分开 - 一种全新的软件界面解决方案
举报原因:
原因补充:

(最多只允许输入30个字)