教你怎样用SkinMagicBuilder制作皮肤
2008-09-16 17:28
椐我所知,设计软件皮肤好像从来不是程序员擅长干的工作。不过我也调查过,很多程序员朋友对皮肤的制作还是满有兴趣的。在这个部分,我专门用我制作的一个软件皮肤为例,从头到尾的给你讲解一遍。其中包括皮肤的画法,皮肤的定制和皮肤的嵌入。如果你有兴
趣,那么就跟着我来做一个皮肤试试吧!

  工预善其事,必先利其器。我们先谈谈制作皮肤需要的工具吧。首先我使用的编程语言是VC++,所以皮肤的嵌入软件,自然也选定是专门制作给VC++的了。我使用的这个软件叫做SkinMagic,有很多朋友通过各种途径得到过这个软件。不过这个软件是个共享软件,而且每一个注册码对应一个软件皮肤,收费高达89美元(我曾经买过几个,吐血!),但是确实非常好使。其实就我所知,很多共享软件的作者都使用这个软件(而且也曾经跟我一样吐过血~)。用它作为皮肤的嵌入软件的原因当然是非常地容易制作啦。(现在已经有破解版本了)
  有了这个工具之后我们还要面有PhotoShop(以下简称PS)来进行皮肤主体的勾画。

  我还要说的是颜色搭配。在这个例子中,因为我很喜欢橙色,所以自然选择橙色作为主体颜色,那么什么颜色能和橙色放在一起比较漂亮?这是问题的关键,我很幸运,著名的NIKE公司的LOGO为我很好的解释了这个原理。

  不难看出灰色,黑色,还有白色都是和橙色很好的搭配在一起,所以我们就选择这几个颜色作为皮肤的制作颜色!

  好了,开始实战!

  第一步,轮廓与着色

  首先,打开你的PS,新建一个文件,宽度为495,高度为406,分辨率为72。然后点击图层菜单,新建图层背景。接着在工具栏里点击油漆桶工具,选择颜色为R=255,B=0,G=255。用油漆桶工具填充背景。我们这样做的目的是填充一个固定的背景色,你看过电影的特技拍摄吧,后面放了一幅大蓝布,然后演员在那里摆POSE,最后再用电脑合成。一个道理,我们也是这样,只不过我们放的是一块大粉布,哈哈。

  下面,我们要绘制一个窗体。在工具栏里点住矩形工具,会看到出现一个下拉菜单,选择圆角矩形工具。在大粉布上画上这个圆角矩形。取名就叫默认的形状1。

  再次使用圆角矩形工具,在刚才的矩形前画一个小一点的矩形,这次我们要拖动鼠标的同时按住减号,然后你会发现我们得到一个窗口外框子。

  接着,我们点击图层窗口,右键选择“形状1”,点选“混和选项”,分别在“斜面和浮雕”,“颜色叠加”,和“描边”上打勾。其中“斜面和浮雕”的参数“大小”为21,“软化”为10。“颜色叠加”的颜色为:R=241, G=112,B=18;“描边”的颜色和刚才的一样,“大小”为1,于是,得到了我们要的窗口外框!

  接下来我们选择工具栏的矩形工具(这次不是圆角矩形了!)画一个长方形,这个长方形要比外框小,比内框大。并将新建的这个图层拖到咱们刚才的圆角矩形的下面,取名也就叫“形状2”。

  还用上面提到的方法,打开“形状2”的“混和选项”,在“内阴影”和“颜色叠加”上打勾。其中“内阴影”的参数“距离”为16,“大小”为5,而“颜色叠加” 的颜色为R=102,G=102,B=102,你瞧我们的窗口做好了!

  好了,把它保存为Orange.psd,然后再转化成BMP格式,我们的窗口皮肤素材就已经做好了!嘿嘿。

  第二步,制作SkinMagic格式皮肤!

  首先,按我刚才说的,到刚才那个网址链接去下载一个SkinMagic,然后解压到你的电脑里。我们使用的是一个叫做“SkinMagicBuilder”的工具软件。它在解压后的SkinMagic的SkinMagicBuilder目录下,是个可执行文件。

  打开这个工具软件后,我们在Object 菜单里选择“Load Image”把刚才存的那个BMP文件装载进来。

  下一步,我们要把这个窗口做活,所谓“做活”就是使这个皮肤能用于任何窗口。这个过程可能有点麻烦。还是点击Object 菜单,选择“Window”的“Frame Window”。在SkinMagic的右侧属性框,把Name改为“Dialog”。然后我们注意到右边的Act iveFrame下有九个属性,翻译成中文他们是“左上方,中上方,右上方,左边,中间,右边,左下方,中下方,右下方”。我们先点击“TopLeft”,在Image Files里选择我们的Orange.bmp。然后你看到,我们画的窗口已经在这个窗口里了。最后你在中间大窗口的左上方看到有一个可以拉动的红点,把它拉开,覆盖在我们的窗口图片的左上方。

  接下来我们按照和刚才同样的方法,把其他八个部分都做好,具体的各个方面参数你可见下表所示。

  填好之后,在Tools菜单里选择“Test”可以测试你制作的皮肤的效果。一个非常非常简单的窗口皮肤已经制作好了。我们把这个文件起名为orange.smf保存起来。

  第三步,在VC++中使用皮肤

  首先我想声明,并不是非要有SkinMagic VC才能添加皮肤,本身VC就有皮肤的调用函数的,比如每一个控件都有一个相关消息映射叫做“DrawItem”,在这里可以对指定的控件装上皮肤。只不过这是非常麻烦的过程,我不推荐。但是如果没有更好的办法,那样也是可以的。比如当你只想给某个按钮加上个皮肤的时候,倒是可以考虑。其他情况下,我们最好采用第三方工具。

  好了,言归正传。我们继续皮肤制作的最后一步,我们先在VC里按照MFC AppWizard建立一个基于Dialog的应用程序,取名为Sample。完全按照向导的默认值就可以了。

  接着我们把刚才保存好的Orange.smf以资源的方式添加到项目中去,资源类型写:“SKIN”,资源名称为:“IDR_SKIN”,注意写的时候一定要加上双引号哦!

  然后我们再到那个SkinMagic包里拷贝些东西,他们分别是:SkinMagicLib.h、SkinMagicLib.lib、DETOURS.lib

  把这三个文件拷贝到你的Sample应用程序的路径下,然后再在VC的Project目录下选择“Add To Project” 菜单的“Files...”。把这三个文件添加到工程中。

  下一步,我们打开Stdafx.h文件,在里面添加上一句:

#include "SkinMagicLib.h"

  接着,在CSampleApp 类里添加一个函数,取名为“InitSkin”。在函数里写入:

void CSampleApp::InitSkin()
{
 //加载皮肤
 VERIFY(1==InitSkinMagicLib(AfxGetInstanceHandle(), "Sample", NULL,NULL ) );
 VERIFY (1==LoadSkinFromResource (
  AfxGetInstanceHandle() , "IDR_SKIN" ,"SKIN") );
  VERIFY( 1 == SetDialogSkin( "Dialog" ) );
 }

  最后在CSampleApp类的InitInstance函数里添加上:

InitSkin();

  按Ctrl+F5,你瞧,皮肤上上去了!哈哈, 厉害了你!并不是很难吧。

  上面我们做的只不过是最简单最简单的上肤了。其实,仔细想想:按钮,菜单,文本框,标签,菜单,Combo等等一大堆的控件都需要上肤的。不过SkinMagic倒是都提供了,我们的做法也和上窗口皮肤大同小异,这里我就不再多说废话了。凭我的经验来讲,一般制作一个完整的皮肤,从PS描绘(有时还需要CorelDraw画)到最后皮肤放到窗口上大约需要3天吧,主要的问题就是要选好搭配的颜色。如果你说你一点美术灵感都没有,那我请你和我一样,找一个非常不错的广告图研究研究;如果你还说一点灵感也没有找到,那只能说明你实在懒得可以。

对原作者内容进行了改动,为了方便学习,我这是收录其中的精华

教你怎样用SkinMagicBuilder制作皮肤相关推荐

  1. 兔子maya骨骼绑定_教你怎么用Maya制作卡通兔子怪兽

    在动漫中经常会出现各种各样的怪兽.接下来本教程将教你怎么用Maya制作卡通兔子怪兽. 这个项目是笔者工作空闲时间在工作室制作的.作为一个经常需要接触各方面工作的艺术工作人员,笔者想要完成一幅作品,从中 ...

  2. 怎么用python制作简单的程序-神级程序员教你如何用python制作一个牛逼的外挂!...

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游 ...

  3. 手把手教你如何用Python制作一个电子相册?末附python教程

    这里简单介绍一下python制作电子相册的过程,主要用到tkinter和pillow这2个库,tkinter用于窗口显示照片,pillow用来处理照片,照片切换分为2种方式,一种是自动切换(每隔5秒) ...

  4. 教你如何用python制作平面直角坐标系模拟器 python项目小发明 【安安教具】-【数学】-【平面直角坐标系】模拟器

    平面直角坐标系和之前的数轴模拟器有异曲同工之妙,但是作为一个二维的软件,肯定是要难一些的... [安安教具]-[数学]-[数轴]模拟器 教你如何用python制作数轴模拟器 python 小项目创作_ ...

  5. ​微信小程序开发难?资深大V教您微信小程序制作步骤和方法​

    ​微信小程序开发难?资深大V教您微信小程序制作步骤和方法​ 一.登录微信公众平台 就能在菜单"开发"---"基本配置"中看到小程序的AppID了,小程序的 Ap ...

  6. 教你用html+js制作一个自己的点名系统,实例代码分享

    简介 教你用html+js制作一个自己的点名系统,实例代码如下. 效果 代码 HTML <div class="wrapper"><h1 align=" ...

  7. 手把手教你用手机轻松制作精美封面,封面不够吸引人?

    今天这期内容将手把手教大家如何去制作一张好看的封面. 最近有很多想做自媒体的粉丝朋友都会来问大周,说不知道该如何去制作一张吸引人的封面. 大周今天就来教你如何用手机制作一张与众不同的封面,本期内容非常 ...

  8. 三分屏课件制作_教你使用iSpring Suite制作PPT二分屏课件

    教你使用iSpring Suite制作PPT三分屏课间 使用课件开展教学对于教师来说一件再平常不过的事情.但是,作为教师的你有没有想过怎样让自己的课件既可以在课堂上为学生提供基本的教学信息,同时在课下 ...

  9. r语言 html gif,推荐 :6步教你用R语言制作动图

    原标题:推荐 :6步教你用R语言制作动图 引言 数据可视化可能是数据科学领域最重要却通常最少被提及的部分. 我这么说是因为创造数据故事和可视化对你的顾客最终怎么看待你的工作有巨大的影响.数据科学不仅仅 ...

最新文章

  1. 英特尔第11代酷睿处理器TigerLake发布,集成Xe GPU,采用10nm制程技术
  2. boost::signals2模块实现为类定义预析构函数的最小示例的测试程序
  3. mysql 配置文件在哪_MySQL+MyCat分库分表 读写分离配置
  4. python-函数的返回值
  5. gstat | 空间插值(一)——反距离权重插值;使用ggplot2绘制地图
  6. 面试准备每日五题:C++(二)——mallocnew、宏、volatile、constvolatile、(a)和(a)
  7. Log4net日志发布到服务器上日志无法写入
  8. WordPress更新提示无法创建目录的解决方案
  9. 4 pwm 什么时候采样电流_电机控制之电流采样及坐标变换第一部分
  10. 单元测试框架TestableMock快速入门(一):快速Mock任意调用
  11. matlab入门——矩阵运算
  12. 绿色到黄色到红色的颜色渐变实现
  13. 开发者应该了解的移动互联网行业内幕
  14. android sim卡pin,如何设置手机的SIM卡的PIN码?
  15. 盘点一个Pandas操作Excel多条件取值的实战案例
  16. [Note] 多项式全家桶 小球与盒子 分拆数
  17. 手把手教你打造一个VIM-IDE
  18. 如何修改命令提示符(cmd)的颜色?
  19. VS 2013使用ReportViewer 提示An error occurred during local report processing异常处理
  20. clamav Java_ClamAV病毒查杀

热门文章

  1. 新媒体短视频运营培训骗局
  2. 数据库间数据迁移常见工具和方法
  3. 2018年前端学习心得——总结篇
  4. 现代文学作品选知识点整理
  5. LocalDateTime时间戳转换
  6. 最新企业春节祝福短信模板内容_2022年创意公司拜年短信文案
  7. BZOJ 1499 [NOI2005]瑰丽华尔兹 动态规划(+单调队列)
  8. 数种动漫和风景壁纸随机API,你值得拥有!
  9. Adroid 触摸屏设备
  10. C++ 输出颜色字体