几种界面开发的个人感受

 
昨天看了几段WPF的视频教程,回想了一下自己接触过的几种界面开发方式,每种给我的感觉都不同。感受这东西向来是很主观的,我也没有什么和别人交流这方面感受的机会,所以我的感受很可能是错误的,你大可一笑置之。
最先接触的界面开发是MFC,那时初学编程,什么基础都没有,所以学起来有点头痛。等不再头痛的时候,就开始厌恶起MFC来。当然最初对MFC没有什么感觉,上网上多了,看“真正的”C++看多了,也开始相信MFC丑陋,结构不合理。当然这最初是别人的感觉,然后听多了自然就成了自己的感觉。上学期的一些实验课,实验室的机子只装了VC6.0迫于无奈又用了MFC,发现MFC结合VC6.0还是挺方便的,挺大的字体,VC6.0的界面也没有那么眩,代码也挺好看的。但用VS2005开发MFC程序的时候那代码看起来就有些怪异。当然这只是主观的个人感觉。
然后是SDK开发。如果要学习用C或C++开发Windows程序,总有人会建议学习SDK开发。我遵从了别人的建议去学了SDK开发。最初觉得很新奇,在MFC中掩藏的一些东西现在一览无余。然后就没有什么新奇感了。我写的程序都是自己玩了小程序,不需要实现复杂的功能,用SDK虽然有自己控制一切的感觉,但什么都自己管理也有些辛苦。虽然没有遇到传说中的SDK难以扩展,代码难以管理的问题,但也放弃了用SDK开发程序。
微软不能提供,那就去找其它界面开发库,最开始是wxWidget,它给我的感觉也不太好,出于对经典C++学派的片面认识,那段时间我一直很讨厌宏,放弃了MFC后我就以为不用再去管那一大堆的宏,没想到还是摆脱不了“丑陋的”,”罪恶的”宏。第一印象不好,我也没有什么跨平台的强烈需求,所以也没有深入学习就放弃了。
接下来就是Qt,这个写出来的代码倒是很符合“习惯”,看起来很舒服,还有个相对而言不是太强大,但还可以用的界面设计器。看了一下它的类库结构,感觉也很不错,很强大。唯一的问题是版本兼容性的问题,我用的是Qt4,但看的是Qt3的书,一些类的方法被公然废除掉了,让我学习的时候很是痛苦了一番。
JAVA的Swing也很不错,相当不错,特别是结合强大的JAVA类库。但尽管我选择了本地化外观,但效果仍然看起来不爽。我在windows上使用,有些控件还不符合windows的使用习惯。Eclipse的界面看起来倒是不错,但我没有那个精力和能力去深入Swing。
Windows Form就很理想了,不但C#的语法看起来不错,还有强大.net类库,强大的界面设计器,种类繁多的控件。使用起来也很简单,学习曲线也不陡。如果不考虑平台可移植性,不考虑用户机子上有没有装framework,这实在是个很不错的选择。也是除控制台外我最喜欢的界面开发方式。
我最喜欢的开发方式是控制台程序,应为它很简短,实在是一种开发人员友好的开发方式而且我通常写的程序都是自产自销的小程序,功能单一,用不着什么好看界面。唯一的问题是在使用别人写的控制台程序就会忍不住抱怨太不友好了,使用前还要先去看看附带的 txt 文档。
昨天看了几段 WPF 的视频教程,没有深入去看相关资料,但昨天给我的映象是我再也不想进行 windows 界面开发了,最初看了几个小的例子倒觉得很简单,给 xaml 中的元素属性随便赋几个值就行了,的确是一种好的界面开发方式。不过后来看了几个复杂的自绘例子,顿时泻了气,不但很复杂,而且需要一定的美术功底。如果开发原来那些“朴实”的界面,用 WPF 倒是比较简单。但它显然打算提高界面开发的门槛,它要让界面酷且眩,那么就不得不让专业美工来进行界面开发,还好就是 WPF 很方便的支持这种开发方式。
 
这是一款真正意义上适合软件界面开发C++界面库。采用XML管理GDI资源(如:图片、字体、颜色等),最大程度将界面与逻辑分开,让程序员有更多的时间去进行软件内部的逻辑处理。SKINSE扩展了非常丰富的API接口,兼容其他界面控件,使界面开发更加灵活、高效。SkinSE只用到了windows几个底层的核心库,没有用到(MFC/ATL等第三方库),采用纯API编写,采用C语言导出方式,增强可移植性,可以用于多种计算机语言。 1.SKINSE界面库内部没有完全采用HOOK拦截窗口的机制,主要采用子类化控件,修改窗口过程函数的方式进行界面美化。但是内置HOOK技术,可以动态设置HOOK,保证了SKINSE在整理构架上的灵活性。 2.SKINSE界面库内置DirectUI绘制思想,将界面绘制元素抽象成图片、文本、矩形区域、线条、动画,并且内置EventItem、DrawItem绘制机制。可以将这些绘制元素以及绘制机制组合开发,实现按钮、单选框、复选框、分组框、Tab控件、动画控件等界面控件。 3.SKINSE界面库提供了非常丰富的API接口,最大限度的让SKINSE界面库更加透明化、个性化,让SKINSE界面库的使用范围得到最大延伸。 4.SKINSE界面库在子类化进行控件美化的时候,尽量不修改控件的默认属性,最大程度地兼容window标准控件的默认属性。比如,目前市场上很多界面库在绘制窗口标题栏的时候,去掉了窗口的WS_CAPTION属性, 导致GetClientRect、GetWindowRect方法失效,从而加大了界面开发和设计的难度,当然也导致不能完美支持SDI/MDI等界面框架。 5.SKINSE界面库提供了界面控件动态布局的特性。省去了程序开发中最为繁琐的窗口控件位置的调整。只需要调整一下XML配置属性,就可以进行完美布局。 6.SKINSE界面库支持BMP、ICO、PNG、JPG等图片格式,支持皮肤色调变换,提供SKINSE内部的图像引擎接口。 7.SKINSE界面库支持SDI、MDI等界面框架,支持20余种界面控件,完整兼容window 2000、window2003、window XP、vista、window7当前的主流操作系统。并且支持window平台的VC、.NET、VB6、Delphi、C++ Builder、PowerBuilder、易语言等多种计算机语言开发
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值