很多软件有自己的很漂亮的Skin,是怎么做出来的呀?
我用过诸如ActiveSkin等很多第三方控件,但功能都有限,比如ActiveSkin不支持Image、Grid等。
我发现有许多软件有外观的一般都有一些像脚本似的文本文件(扩展名却不一样,然后就是一些图片),哪位能给我讲讲有关方面的技术呀?QQ:303147952
E-mail:[email protected] 谢谢!!!给点建设性的意见吧!!!

解决方案 »

  1.   

    我也想要[email protected]好的界面还是需要美工啊,
      

  2.   

    [email protected]
    我也需要,thanks
      

  3.   

    只能说原理,全市图片实现的按钮,最大化,最小化,通过读取配置文件判断该加载那个图片
    可以参考叶帆的开源代码
    http://blog.csdn.net/yefanqiu/
    xp窗体界面
      

  4.   

    最高级的不是脚本级你提供接口,人家写dll.然后你导入那个dll就可以了,何止界面,连插件(PlugIn)都搞定了主要是教会人家怎么用你提供的接口...
      

  5.   

    界面是拼出来的.你看到的最终界面实际上就是一个PictureBox所谓的脚本(不是脚本,应当说是配置信息)比如 conf.ini描述的就是 XX 按键的按下去位图文件是 xx1.bmp  松开的时候是xx2.bmp 悬浮的时候是 xx3.bmp  平时 是 xx0.bmp   然后描述 按钮XX的位置10,10,200,100
    举例'conf.ini
    [main]
    bmpdir=bmp   '指定位图文件目录
    wavdir=wav   '指定wav文件目录[butXX]   '按钮XX相关
    top=10
    left=10
    height=100
    width=200
    Style0=xx0.bmp
    Style1=xx1.bmp
    Style2=xx2.bmp
    Style3=xx3.bmp
    tooltip=按钮XX的浮动提示
    wav=ding.wav[but2]
    .....[but3...]配置完成之后,应用程序再读取这个ini 就可以了假设你读取的函数是LoadINI(段名称,键名称) 返回 类型为字符串
    Dim SkinBMPDir as string
    dim SkinWAVDir as string sub form_load()
     loadskin "./skin/default/conf.ini"
    end subsub loadSkin( conffile as string)SkinBMPDir =loadini("main","bmpdir")
    skinWavDir =loadini("main","wavdir")imgButXX.top=cint(loadini("butxx","top"))   '''(定义位置)
    imgButXX.left=cint(loadini("butxx","left"))
    ...
    imgButXX.image=loadpicture(skinbmpdir+loadini("butxx","Style0"))  ''读取图片
    ...
    end sub实际上SKIN就是这样,或者差不多,就是一个数据配置文件所谓的脚本就麻烦了,需要有脚本引擎解释.假设你的程序像OFFICE一样支持VBA,那么你的脚本应该是这样的conf.cfg'假设你的程序对每个按钮都有定义,比如classButXX类的对象ObjButXX
    objButXX.top=...
    ObjButXX.Style0=loadpicture("...
    '中间对界面的配置由脚本来完成...最后就是插件技术了就是动态加载DLL记得怎么用API么, declare function xxxx lib .....
    VC有个LoadLibrary(忘了,也好想是delphi 我搞混了,VC Delphi反正两个都有)
    VB没有,只能用WinAPI来动态加载dll然后再dll提供同一的接口函数,比如confSkin()
    主程序开始的时候,根据配置,动态加载 某个dll,然后配置工作交给dll的confSkin()完成插件技术也是如此,比如不顾定的计算方法(例如WinAmp的屏幕动画),固定去调用某个dll的固定函数就可以了.随着技术的进步,XML的大量引用,函数可以不顾定,dll也可以不顾定.
    Flash也可以做界面...
    HTML做界面的也越来越多了...
    微软最新的例子演示了怎样用D3D来使用组件...唉,老了,跟不上时代了
      

  6.   

    看看Winamp就知道了。把皮肤的扩展名改成.rar的用WinRAR打开就看到了。
      

  7.   

    整理了一下http://blog.csdn.net/a11s/archive/2005/02/18/292094.aspxhttp://blog.csdn.net/a11s/archive/2005/02/18/292102.aspx就着些了