很多软件有自己的很漂亮的Skin,是怎么做出来的呀?
我用过诸如ActiveSkin等很多第三方控件,但功能都有限,比如ActiveSkin不支持Image、Grid等。
我发现有许多软件有外观的一般都有一些像脚本似的文本文件(扩展名却不一样,然后就是一些图片),哪位能给我讲讲有关方面的技术呀?QQ:303147952
E-mail:[email protected] 谢谢!!!给点建设性的意见吧!!!
我用过诸如ActiveSkin等很多第三方控件,但功能都有限,比如ActiveSkin不支持Image、Grid等。
我发现有许多软件有外观的一般都有一些像脚本似的文本文件(扩展名却不一样,然后就是一些图片),哪位能给我讲讲有关方面的技术呀?QQ:303147952
E-mail:[email protected] 谢谢!!!给点建设性的意见吧!!!
我也需要,thanks
可以参考叶帆的开源代码
http://blog.csdn.net/yefanqiu/
xp窗体界面
举例'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来使用组件...唉,老了,跟不上时代了