界面换肤的原理是什么?

danxuezx 2009-06-09 10:34:16
在网上搜了一下,没有找到比较详细点介绍界面换肤的资料,因此在此请各位朋友给指点一下了。
...全文
148 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdzwj 2009-06-09
  • 打赏
  • 举报
回复
原理就是利用钩子或子类化处理WM_PAINT消息。
DavidHsing 2009-06-09
  • 打赏
  • 举报
回复
可以通过钩子,hook 消息来自绘。
cppzhentan 2009-06-09
  • 打赏
  • 举报
回复
GDI+自绘
梧桐168 2009-06-09
  • 打赏
  • 举报
回复
看看BCG,GUILIB库里面的实现。
danxuezx 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hurryboylqs 的回复:]
普通点的就是简单的换图片,复杂点的是图片+数学图像效果处理
[/Quote]
那复杂点的也是提前得把界面做好吗?
hurryboylqs 2009-06-09
  • 打赏
  • 举报
回复
普通点的就是简单的换图片,复杂点的是图片+数学图像效果处理
  • 打赏
  • 举报
回复
可以参考BCG源码
superdiablo 2009-06-09
  • 打赏
  • 举报
回复
就是实现界面的可配置性,比如把界面的颜色、字体等存成一个文件,根据用户的选择随时切换。
MFC要自己做,不过有的界面库有内置的换肤功能,比如WPF。
lujugun 2009-06-09
  • 打赏
  • 举报
回复
主要是子类化过程
换肤软件主要是派生了许多常用的控件,使得它的功能变得强大,特别是对bitmap处理这块,可以实现很多功能,比如剔除背景,自动切分等。
你在换肤软件中设计好你的控件后,用它提供的api,替换你在VC里制作的控件(通过ID号)就OK了,其内部原理就是它通过这个ID号所指定的控件子类化成了换肤软件中给你提供的控件。让这个“新控件”去响应消息和显示。
shinefen 2009-06-09
  • 打赏
  • 举报
回复
我都想知道
何日人再来 2009-06-09
  • 打赏
  • 举报
回复
资料的话,楼主可以在这里找找
http://hi.baidu.com/banxb
何日人再来 2009-06-09
  • 打赏
  • 举报
回复
通过hook,然后子类化自绘
RichyMong 2009-06-09
  • 打赏
  • 举报
回复
应该是通过钩子吧,用过SkinMagic,发现它把WM_ERASEBKGND给屏蔽了,不过WM_PAINT没有

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧