SkinMagic使用方法总结--SetSingleDialogSkin断言失败

      以前一直没有接触过皮肤库这玩意, 最近做一个im项目需要用到皮肤库了,  我们公司用的是SkinMagic,  关于SkinMagic的安装和使用方法, 网上有很多教程, 在SkinMagicLib.h头文件里介绍也很详细, 这里就不重复了, 主要描述一下我在使用SkinMagic碰到过的问题. 刚开始使用SkinMagic库时, 觉得它很简单(基本使用确实是很简单的, -_-),  一眼就扫完了它所包含的几个常用函数:

 

       InitSkinMagicLib 初始化库

LoadSkinFile    加载皮肤文件

SetWindowSkin 设置窗体皮肤

SetDialogSkin 设置对话框皮肤

SetSingleDialogSkin 设置单个对话框皮肤

 

      由于我的项目是对话框程式, 所以就选择了SetWindowSkin和SetDialogSkin函数, 运行起来才发现所有的窗口样式完全一样了, 在弹出的对话框中有些是不能一样的,  于是乎,我又在创建其他对话框的时候用到了SetSingleDialogSkin函数,  但结果却不是我想象的那样,  SetSingleDialogSkin所设置的样式并没有生效, 上网找了好多资料, 无非也是介始上面几个函数的用法, 还有的说SetSingleDialogSkin要用到OnCreate消息里去, 但我测试时发现在OnCreate消息里使用SetSingleDialogSkin会返回0, 导致VERIFY断言失败,  经过多次测试发现, 是因为在开始调用了SetDialogSkin的原因,  如果在开始不调用SetDialogSkin, 在OnCreate不论是使用SetWindowSkinSetSingleDialogSkin都可以实现皮肤的加载, 即使是不在OnCreate函数中, 只是指定的窗体创建了, 这两个函数还是有效的.

 

  所以我猜想, SkinMagic设置SetDialogSkin后, 所有的对话框就会应用同一种样式了, 不能再通过SetSingleDialogSkin来改变, 这似乎与我们想象的不太一样, 应该是SetDialogSkin设置通用对话框的样式, 而对于SetSingleDialogSkin的调用窗体作特殊处理才合乎情理, 不知道是不是SkinMagic本身就是这样设置的, 为这问题浪费好多时间!!!!~~ 如果不是这样的话, 有知道原因的朋友, 麻烦告知下, 谢谢!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值