关键字: 界面 SKIN 作者:董含君
界面是拼出来的.
你看到的最终界面实际上就是一个PictureBox(或者类似的设备),VC的朋友都理解,我们看到的全部的界面实际上都是"画"在窗体上的,只不过微软已经为我们做好了一切的重画工作罢了.如果自己像这么作,就要重复这部分劳动,不要觉得复杂,因为这是必然的.等你习惯了就行了(不难,就是耗时间)
方法1:配置文件配置的SKIN 所谓的脚本(不是脚本,应当说是配置信息)
比如 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 sub
sub 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就是这样,或者差不多,就是一个数据配置文件
2 脚本配置
所谓的脚本就麻烦了,需要有脚本引擎解释.比如游戏界面里的那些操作界面,都是脚本实现的,怎么??你不相信!!!只不过一般你用不到这么复杂就是了
假设你的程序像OFFICE一样支持VBA,那么你的脚本应该是这样的
conf.cfg
'假设你的程序对每个按钮都有定义,比如classButXX类的对象ObjButXX objButXX.top=... ObjButXX.Style0=loadpicture("... '中间对界面的配置由脚本来完成...
请参考叶凡达人的文章
VBScript脚本运用(脚本程序与宿主程序的交互) http://blog.csdn.net/yefanqiu/archive/2004/10/15/137928.aspx
VBScript脚本运用 http://www.bjjr.com.cn/YeFan/SourceCode/YFVBScript.rar
3 PlugIn技术
最后就是插件技术了
就是动态加载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来使用组件...
唉,老了,跟不上时代了

|