社区
茶馆
帖子详情
如何在加载皮肤控件的条件下,在标题栏上添加按钮?
jaffy
2010-08-11 09:46:31
没有美工,所以只好用控件。现在是用的AlphaControls 6.44
问题是想将换肤按钮放在标题栏上,效果和foxmail的效果比较类似,有没有人做过,给个思路先?
...全文
266
12
打赏
收藏
如何在加载皮肤控件的条件下,在标题栏上添加按钮?
没有美工,所以只好用控件。现在是用的AlphaControls 6.44 问题是想将换肤按钮放在标题栏上,效果和foxmail的效果比较类似,有没有人做过,给个思路先?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
周药师
2010-08-18
打赏
举报
回复
这样的话,最好去设计公司的设计一下
之前我们公司请了一个设计的 2K就搞定了
jaffy
2010-08-18
打赏
举报
回复
哎,就几个人做软件,哪里去找美工啊!
周药师
2010-08-18
打赏
举报
回复
皮肤控件还是尽量少用
避免一些意外
还是自己贴图的有保障些
jaffy
2010-08-18
打赏
举报
回复
用过的皮肤控件很多,但这个控件我看来是比较炫的,关键在于它不仅支持多窗口换肤,还支持Alpha通道,色调偏差,饱和度;图标还支持PNG矢量放大,缩小。还有好多特性,大家有空看看帮助吧。
当然它并非完美,也有些小毛病。下面结合自己的使用谈谈吧,如有什么不对之处,欢迎大家讨论!mailto:jaffy@21cn.com
安装
我用过AlphaControls 6.44和7.04两个版本,解压后会发现每个DELPHI和BCB版本都有单独的目录,安装和普通控件的安装没有两样,需要注意,要先删除旧版本后再装。但我发现一个问题,就是DELPHI
和BCB(codegear 2009)没法同时装这个控件,我一般先在BCB下安装,再想在DELPHI下用,就报错提示已经安装了。在设计时,无法看到控件,但打开相关代码没有问题,可以用拷贝BCB控件的办法在
DELPHI下使用,效果是一样的。还有,不同控件版本之间无法平滑移植(起码我碰到的情况是这样),这个问题真没办法,所以只能期望你使用的是高版本了。
使用
安装后,会看到它有三个面板,alphaStandard alphaAdditional alphaTools,这三个面板中的控件基本够我们构造界面用的了。
下面介绍的都是7.04中的属性
alphaTools面板
首先需要使用alphaTools中的TsSkinManager控件,拖入后,设置SkinDirectory目录为皮肤的绝对路径,然后就可以再SkinName中选择不同的皮肤了;也可以设置InternalSkins,将已有皮肤直接添加到
控件中形成内部皮肤,这样就不用带着皮肤发布了。再介绍几个常用属性,Active 激活属性,这个就不说了;ExtendedBorders 是否扩展边框,可以让外围框架看起来更明显一些;HueOffset 色调偏差
0-360;Saturation 饱和度0-100;SkinningRules 换肤规则。
AnimEffects这个属性最炫了,你可以在这里设置移动时窗体透明度;Buttons特效的规则;窗体和对话框SHOW和HIDE时的特效等等,大家可以自己多设置一下,看看效果。
sSkinProvider1也是个比较重要的控件,拖入后,可以设置一些特效的开关(我研究不多),TitleButtons这个属性可以设置标题按钮,你可以在这里添加按钮,然后通过弹出窗体来实现皮肤及属性的
动态设置,就和FOXMAIL的换肤界面效果一样了。不过FOXMAIL中有个亮度的属性,我还不清楚是设置的什么?还请高手们赐教!
这个面板中还有个Magnifier控件也很炫,可以直接实现放大镜效果,style选amsLens。代码很简单Execute()和Hide()就完了。
alphaStandard面板
这里都是些标准VCL控件的继承,大家看看都很简单,主要就是设置SKINDATA中的SkinSection属性;可以变化出很多效果;还要注意有的控件有BoundLabel属性,挺好的,可以外挂一个LABEL,方便界面
布置。
alphaAdditional面板
这里都是些高级控件扩展,比如日期控件,计算器控件,颜色选择控件,字体控件等等;FrameLookBar是个很好的界面控件,一般实现导航栏功能,并且可以自动隐藏,鼠标重入后自动显现;
好了,写了一早上,放两个图吧,大家看看效果:
最后,说一个问题,请有经验的大虾们赐教
DLL中的FORM无法继承皮肤,我上了AlphaControls论坛,里面也有人遇到这个问题,说解决方案是勾选build with run time package 并选择运行时库(带R)的,可我按照它的设置没有效果;另外我发
现只要是窗口(无论是否在DLL中)的BorderStyle为bsnone,就不可以继承皮肤了,这使得框架设计不好复用,我希望外围框架使通用独立的。它的例子中都是用FRAME,不过我试过好像也不行。
银点
2010-08-16
打赏
举报
回复
静等楼主心得,我也用这个组件
AFreshGirl
2010-08-16
打赏
举报
回复
楼主,心得发到哪里了?
laowang2
2010-08-16
打赏
举报
回复
等待啊
jaffy
2010-08-11
打赏
举报
回复
所有的消息处理中都加上了画按钮的程序,就是不顶用。
图片拷贝也用了也无效。
真想知道Foxmail是如何实现的
不过我刚才试了试VCLSKIN好像可以,再多研究一下。
laowang2
2010-08-11
打赏
举报
回复
自己兼做美工。
AlphaControls 没用过,处理WM_NCPAINT消息画上一个按钮样子的图片,
然后处理WM_NCLBUTTONDOWN来处理鼠标点击。不知道可以不可以。
jaffy
2010-08-11
打赏
举报
回复
研究了一天,有所小成。
看来AlphaControls控件皮肤真不错,做的效果还比较像FOXMAIL
没有美工的人们,终于可以有自己的漂亮框架了。
晚上回去整理一下,明天把心得发上来,呵呵。
YeBinYe
2010-08-11
打赏
举报
回复
AlphaControls的sample里面应该有相关的源码
Visual C++编程技巧精选500例.pdf
048 如何防止在
标题栏
上显示文档名? 049 如何禁止
标题栏
的最小化
按钮
?… 050 如何禁止
标题栏
的最大化
按钮
? 051 如何禁止
标题栏
的关闭
按钮
? 052 如何获取
标题栏
的
按钮
尺寸? 053 如何自定义
标题栏
? 054 如何获取IE浏览...
Visual C++编程技巧精选集 光盘
90.如何禁止在窗口
标题栏
上显示文档名 91.如何自定义单文档程序窗口的
标题栏
92.如何取消单文档程序
标题栏
的右键菜单 93.如何隐藏或显示应用程序的
标题栏
94.如何获取IE浏览器窗口的
标题栏
文字 95.如何修改IE浏览器...
VC实现炫眩qq界面的模拟(附源码)
界面换肤 美化 异形窗口 vista 样式 透明窗体 自绘
控件
vc vb delphi 编程 源码 代码 例子 磨沙 半透明 开发包 免费 破解 button dialog frame XP 下载 自绘
按钮
菜单
标题栏
滚动条 listctrl treeview listview ...
Excel VBA实用技巧大全 附书源码
01011获取Excel主窗口
标题栏
的名称 01012获取Excel窗口的状态(大小) 01013获取Excel主窗口的高度和宽度 01014获取Excel主窗口的左边界位置和顶端位置 01015获取在Excel主窗口中一个窗口所能占有的最大高度和宽度 ...
Bootstrap官网教程整理
从Bootstrap官网上原文复制粘贴,将其整理的 Bootstrap入门教学文档。 Bootstrap 简介 8 什么是 Bootstrap? 8 历史 9 为什么使用 Bootstrap? 9 Bootstrap 包的内容 9 Bootstrap 环境安装 11 下载 Bootstrap 11 ...
茶馆
552
社区成员
20,064
社区内容
发帖
与我相关
我的任务
茶馆
C++ Builder 茶馆
复制链接
扫一扫
分享
社区描述
C++ Builder 茶馆
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章