RT:PS:两个问题。 1:MSN换肤;就是那种改变窗口的配色方案是否是把所有的控件放一个容器里面 比如Panel里面 然后全部一起改变色彩的缘故。(个人觉得应该不是用到拦截消息,在窗体上重画的那种技术) 2:vista;vista的皮肤是如何实现以及vista有无皮肤包可下载? 望大家不吝赐教~~~
解决方案 »
- delphi7 调用二个参数的存储过程问题????
- 问题个低级的问题,进度条应怎么使用?
- 公司要开发一个用delphi开发的3层系统,我只知道delphi基本使用,请推荐delphi开发3层方面的书籍,谢谢
- 关于corba运行环境问题恳请高手。
- 求Delphi5或者6的下载地址
- 高分:"MyGina.dll"哪位高手有这个文件,用于屏蔽CTRL+ALT+DELETE??
- delphi中怎么用mscomm控件发送一个两位数,例如发41,单片机接收的是0100 0001?
- 关于流,在线给分!
- comparestr的问题!求救
- 一个关于扫描枪的问题《62》
- 可能增加、删除了几个字段或者建立删除了几个索引,外键等等,这些情况下怎样对原有旧数据库做升级并且将用户原来在旧数据库表录入的数据
- 出售Usb设备读写中间层代码
msn的好像不是
若用网上现成的控件的话可以有2种选择,第一种是很流行的VCLSKIN,这个第三方的控件已经很程序了,只要设置一个激活的属性为TRUE,然后有一个加载的皮肤的路径把皮肤静态的加载就可以了。第2种选择的话可以可以用AppFace苹果牌的DLL,这是一个已经封装好的DLL了,目前我也没有找到它的原码,appface.dll这个DLL封装了皮肤实现的所有原码,以及接口函数的调用和实现,苹果皮肤的话可以去苹果的官网下载,这种DLL比VCLSKIN又有所不同,它的加载方式是动态的,我想加载哪一个皮肤的话就可以调用它的加载函数去加载,而VCLSKIN是二个属性设置,他需要安装DPK控件包。其他的第3方的控件和这两种大同小异,这里总结出一个结论,若单一的调用VCLSKIN显然比Appface好很多,简捷,方便;而复杂的调用的话建议用Appface,动态的调用想要的皮肤,实现轮换的效果。这里有Appface的demo程序以及我自己写的一个VCLSKIN的例子。Appface的UnitAppface单元提供了这个实现皮肤的所有函数,具体的可以看自带的帮助。2:换图片的方法 原理:换图片的方法原理就是拦截消息,在窗体上重画。MIAN给了我一个他写的DEMO,里面所实现的效果就是这种方法实现的,他的消息没有用到。他是通过把那些图片用设计工具把每个窗体上的一个部分给截取下来,然后通过INI文件的方式读取出来给一个TBitmap,最后加载上去的。DELPHI有自带的画Bitmap这种图函数BitBlt,BitBlt这个函数在NT环境下,如在一次世界传输中要求在源设备场景中进行剪切或旋转处理,这个函数的执行会失败,而SetWindowRgn这个API允许我们改变窗体的状态。CombineRgn这个API是利用两个区域组成一个新的区域,用FillRect这个API指定的刷子填充一个矩形达到背景色填充的效果。3:MSN皮肤MSN换肤,就是那种改变窗口的配色方案是否是把所有的控件放一个容器里面,比如Panel里面 然后全部一起改变色彩的缘故。(个人觉得应该不是用到拦截消息,在窗体上重画的那种技术)后来咨询了一下猛禽,他告诉我说MSN的换肤是根据贴图来的,这样的话我们就需要自绘控件,来达到那种效果。MSN的改变配色方案的话就是改变控件的背景色彩,我想到一种方法就是把所有的控件放在panel上面,然后换背景色彩的时候改变panel的色彩,对本身的色彩进行画图运算。总结:一般的第三方控件只支持DELPHI本身自带的控件,而我们的程序中如果用到自己封装的控件或则另外的第三方控件的话,这样是不支持的,得有我们自己来美化,来实现图片的重绘。
不然我才不要去研究什么VISTA 头痛ING~~~``
9楼zuoansuifeng说的就很很好
当精华帖子也不为过
个人觉得解决一个具体的技术问题不值得太炫耀
反而是这种抽象给人从思想观念上带来的改变才是最有用的。
我有几套VISTA的皮肤,楼主需要可以发给你