我很喜欢界面处理这块,所以,一直对于软件界面很在意。因为我相信,一个好的软件,不仅仅是功能强大,稳定的,而且,它的人机交互功能也应当是最棒的。
很多人认为界面没什么,不就是贴图吗?SKIN就是贴图,但是要想做好的话,还是要花费相当大的精力,对于你的基础知识是一个考验。
在论坛里也经常看到有人想了解这方面的内容,今天就对我所了解的软件的界面技术(SKIN)进行一下总结,有什么地方说的不对的还请大家帮忙纠正。
这里是原帖的地址,发表在我的博客里的:
http://etomahawk.popo.blog.163.com/blog/static/919644820081128105845384/
Demo下载地址(一个简单的对进程里<更确切的说是线程>中的BUTTON控件进行换肤):
http://download.csdn.net/source/916751/
Demo界面:
窗体内建滚动条换肤代码下载地址:
http://download.csdn.net/source/917314
同样,本帖的得分规则参照前一贴。
本贴的主角:软件SKIN技术
内容(转一部分,感兴趣的话到原帖看吧):
软件的皮肤技术,简单的总结一下,可以用两个字来表示:自绘(或者说贴图)。当然,具体的效果如何,就要看你的基本功如何了。
根据实现的方式,可以分为两类:
A. 对现有的标准控件的换肤。Appface, Skin++, VCL Skin,SkinBuilder等一批换肤软件就是该类的代表。
B. 自己编写控件。AlphaConttrol, RZ系列控件就是该类的一些代表。这类控件库在delphi中尤其多。
编写皮肤需要基本功:
A. Windows 绘图技术。
既然是要换肤,当然要进行绘图,而要进行绘图,则必须了解Windows的一些绘图函数和Window控件的绘制过程。
B. Windows消息系统的了解。
Windows是一个消息驱动的系统,所以,我们必须对这个消息系统有所了解。我们必须了解一个控件是如何被绘制出来的,在绘制过程中都触发了那些消息。然后,我们过滤这些消息,在里面进行处理。
C. Windows API的了解。
对于一些特殊的控件,仅仅靠消息是不行的,必须依靠API HOOK技术。所以,我们必须对API有所了解。
(更多的内容请到原帖地址)
..........