界面开发概述

      每个软件都要有自己的软件界面,对于软件开发来说,软件界面不一定是最重要的,但是也是相当重要的。一款软件要是可以在界面上做好,吸引了客户的眼球,那这款软件也就相对成功了一半。

      现在各行各业的软件都添加了自己的皮肤色彩,显示出了不同的特点。例如QQ,MSN,Foxmail等等,这些软件都修改了自己软件的界面,将自己的界面化做的很完善,很漂亮。使用起来感觉很舒服。我也是一个做软件的,于是也打算将自己的软件做的像那些软件产品一样漂亮,于是乎在网上寻求自己软件界面的解决方案。当然很多很多。下面列举几个:

      一、使用皮肤组件(IrisSkin2.dll)

      这个是东日软件公司开发的一套软件界面。IrisSkin 是为Microsoft Visual Studio.NET开发的最易用的界面增强.NET(WinForm)组件包。它能完全自动的为您的应用程序添加支持换肤功能,甚至不需要更改您的设计好的Form以及添加一行代码!您也不再需要花费很多时间来使得自己的应用程序更漂亮。当然他是收费的,但是网上很多具有破解版,当然我也下载了一套,使用起来相当的方便。

      下载地址:/Files/zhjp11/皮肤/Irisskin.rar

      二、自定义开发

      这个就比较难了,要了解很多关于Windows开发的内容,其中有两种做法,一种就是使用自定义的皮肤Form和Button等所有的空间,继承.net Framework提供的控件中自己使用的大部分,然后扩展其中的WndProc方法或者其他的一些方法,这是市最普遍的一种方式。另外就是使用IrisSkin的方法,使用NativeWindow这个底层的类,进行Hook编程。主要的例子如下:

      1、苏飞的博客:

      http://www.cnblogs.com/sufei/archive/2010/03/13/1685236.html

      2、CsharpWin中的皮肤

      http://www.csharpwin.com/csharpresource/2992.shtml

      这两个写的都非常好,让我受益匪浅。

      总结了以上的皮肤开发,我了解的到,所谓的皮肤开发无非就是使用了图片、颜色等内容将窗体进行了重绘或者就是覆盖,也就是重载了WndProc中的Paint,NCPaint等等操作。对于Winform来说,一个窗体主要分为两块,即Non Client Area和Client Area,如下图:

      

      简单的说就是对Client Area和Non Client Area的绘制。而Form中的WndProc的Paint,NCPaint就是完成这样的操作。

     3、我的实现方式。

     我的实现方式主要研究了苏飞和CshaorpWindow的两个程序,还有就是查看了IrisSkin的反编译源代码,我觉得实现的方式还是使用IrisSkin的方式比较好,IrisSkin的实现是使用了本地的一个简单的类NativeWindow,这是是一个可以实现简单的窗体等的注册,也就是Hook。我按照了这种方法,写了一个简单的程序。基本上可以实现IrisSkin的内容,使用的方式和IrisSkin的使用方式一样,都是在窗体中添加一个SkinEngine的Component,这样窗体就会显示了Office2007的样式,如下图所示:

     

      现在主要实现了在窗体上的Label可以显示为皮肤的颜色,但是对于对话框中的颜色还没有进行处理。还需要很多的处理,包括皮肤的设计和窗体中各个控件的设计。我会将在后续专题中写相关的内容。
      源码如下:SkinEngines2010-03-17.rar

posted @ 2010-03-17 18:02 萧萧空间 阅读(...) 评论(...) 编辑 收藏