Skin++ For VS2010 使用教程
来源:互联网 发布:cv 怎么写 知乎 编辑:程序博客网 时间:2024/05/29 15:16
一、 概述
Skin++是一款通用的软件换肤套件,目前支持各种版本操作系统,Windows2000、WindowsXP、Windows7。支持各种开发语言,VC、VB、C#、PB、Delphi、C++Builder、易语言。Skin++ 目前已经拥有数量众多的用户,并且有很多的国内外大公司客户。无论其换肤的效果还是程序本身的稳定性,都堪称一流。要做出漂亮风格的界面,使用Skin++变得非常简单,只要一行代码,就能让你的程序彻底换肤,并拥有动态换肤的功能。
二、 VC++中的使用
1、创建一个多文档程序
2、拷贝Skin++相关文件
到安装的目录下面找到Skin++ v2.0.1目录中的lib文件夹,将其中的SkinPPWTL.dll 、SkinPPWTL.h和SkinPPWTL.lib 拷贝到刚才创建的工程目录中。SkinPPWTL.h添加工程中。
到安装的目录下面找到Skins目录,我们选择AquaOS作为我们测试皮肤,把AquaOS.ssk皮肤文件拷贝到当前的工程目录中来。
3、工程设置
在(VS2010)"Project->Settings->Link->Object/library(输入)->附加依赖项"中加入SkinPlusPlusDLL.lib
4、包含Skin++头文件在StdAfx.h中写上下面两句
#include "SkinPPWTL.h"
#pragma comment(lib,"SkinPPWTL.lib")
5、加载Skin++代码
进入CxxxApp::InitInstance(),在该函数的第一句写上:skinppLoadSkin(_T("AquaOS.ssk"));
skinppLoadSkin有两参数,第一个参数为皮肤路径,如果直接写皮肤名称,那么程序运行的时候,会到程序所在的目录下去查找,如果在该目录下没有该皮肤文件,那么加载Skin++失败,运行程序将看不到效果。该参数接受皮肤的绝对路径和相对路径。第二个参数一般用户不用填写,但对于想要把皮肤文件释放到一个目录里加载Skin++以提高加载速度的情况下有用。这个功能对于正式版用户可用。免费版不支持该功能。
6、卸载Skin++代码在程序的卸载函数中加入ExitInstance()
skinppExitSkin(); //退出界面库,做清理工作。
三、使用Skin++其他问题
1、控件禁用皮肤
针对Skin++皮肤效果是针对整个项目的,无法实现在此基础上对单独的控件进行重绘,最终显示的效果存在 字体普遍偏小,滑动控件刷新存在重叠的问题。
解决方法: 调用skinppSetNoSkinHwnd(GetDlgItem(IDC_xxxx)->m_hWnd,true);
上述函数可以实现该控件的禁用皮肤,利用字体类CFont的SetFont可以改变字体大小,但随之而来带来了禁用的控件与皮肤存在明显对比,视觉效果太差。可以考虑重载,加入以下代码:
if (pWnd->GetDlgCtrlID()==IDC_xxxx|)
{
pDC->SetTextColor(RGB(220,220,220)); //字体颜色
pDC->SetBkMode(TRANSPARENT); //设置字体背景为透明
return (HBRUSH)::GetStockObject(HOLLOW_BRUSH ); // 设置背景色为透明
}
2、显示控件刷新存在重叠的问题
解决办法:先隐藏,后显示即可
GetDlgItem(IDC_xxx)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_xxx)->ShowWindow(SW_SHOW);
3、闪屏问题不太好解决,产生的原因终究是视图刷新速度太快(上面第二点未完全解决问题带来的弊端)
暂时通过在OnCtlColor()函数中将设置背景色为黑色或不设置控件背景色:
return (HBRUSH)::GetStockObject(BLACK_BRUSH); // 设置背景色为黑色
- Skin++ For VS2010 使用教程
- VS2010使用Skin++
- VCL skin 使用教程--Delphi 7
- iTunes Skin for PocketTunes
- Skin++ for Visual C++
- 【分享】Skin++ For Delphi 破解
- Skin for * cannot be found
- 使用 Qt 制作 Skin
- ASP.NET使用Skin
- skin++的使用
- Skin++ 使用unicode编码
- MFC使用Skin++
- SKIN++皮肤的使用
- MFC使用Skin++
- MFC使用Skin++
- Libgdx Skin的使用
- 使用Skin#美化界面
- 使用 ADF Skin
- Cocos2d-x中父节点scale对子节点的影响
- ExecutorService产生的Thread命名
- Dalvik VM 和 JVM 的比较
- Java虚拟机和android虚拟机之间的区别
- 页面置顶的悬浮按钮
- Skin++ For VS2010 使用教程
- OSCache学习(1)Cache使用的必要以及OSCache的简介
- 安卓第一天
- 一:递归(正常递归与尾递归)
- 错误解析->“cvQueryHistValue_ND”: 找不到标识符
- php自动获取字符串编码函数mb_detect_encoding
- 数据分析(二)
- android软件音量控制
- 蜗牛—Android基础之拨打电话