zoukankan      html  css  js  c++  java
  • [MFC美化] Skin++使用详解-使用方法及注意事项

    主要分为以下几个方面:

    1.Skin++使用方法

    2.使用中注意事项

    一. Skin++使用方法

    SkinPPWTL.dll、SkinPPWTL.libSkinPPWTL.h ,将三个文件及相应皮肤(.ssk)拷贝至工程文件夹下

    1.加载Skin++

    1).在工程stdafx.h文件中加入#include "SkinPPWTL.h"

    //..
    #endif // _AFX_NO_AFXCMN_SUPPORT 
    #include "SkinPPWTL.h"   //在这个地方加
    #pragma comment(lib,"SkinPPWTL.lib") //或者在(附加依赖项)"Project->Settings->Link->Object/library"中加入SkinPPWTL.lib
    //{{AFX_INSERT_LOCATION}}

    2). 在APP类文件的InitInstance()中加入初始化语句InitInstance()

    BOOL CWwApp::InitInstance()
    {
    
    AfxEnableControlContainer();
    //
    skinppLoadSkin(_T("blue.ssk"));//blue.ssk为工程文件夹下的皮肤文件
    //skinppLoadSkinFromRes();//静态资源加载, 在皮肤.h文件中有函数声明,参数自填
    #ifdef _AFXDLL // }

     备注:更换皮肤只需要在事件中调用该函数即可。

    2.卸载Skin++

     在APP类文件的卸载函数ExitInstance()中加入:
      skinppExitSkin(); //退出界面库,做清理工作。

    二、使用中的注意事项

    1. Skin++免费版是只支持ANSI方式,但VS2010在默认情况下编码为UNICODE方式,如果在编译链接时不把编码改为ANSI方式则无法正常生成。

    解决方法: 项目 - 属性 - 配置属性 - 常规 - 字符集 - 使用多字节字符集。

    2. 项目在使用多字节字符集下编译可能会出现其他的错误,如不能将CString转化为LPCWSTR等。

    解决方法:将字符集改回为原来的UNICODE方式,然后skinppLoadSkin(_T("blue.ssk")); 改为skinppLoadSkin("blue.ssk"); 然后在SkinPPWTL.h头文件里定义一个typedef char MYCHAR变量,并替换所有的TCHAR, 并将语句TCHAR_tcscpy(szResImageName, _T("")); 改为strcpy(szResImageName, ""); 即可,编译即可通过。

    3. 在UNICODE编码下的使用

    官方说法,只有企业版才支持UNICODE。如果您的程序正好不是ANSI。。那么下面的方法可能会对您有所帮助。。一般咱们用SKIN++,只用到了skinppLoadSkin 与skinppExitSkin 。。

    如果是UNICODE程序,在编译时会提示LINK skinppLoadSkin 方法错误。

    其实只要把SkinPPWTL.h里的

    skinppLoadSkin(TCHAR* szSkinFile, BOOL bFromIni = FALSE);

    原型改为

    skinppLoadSkin(CHAR* szSkinFile, BOOL bFromIni = FALSE);

    在调用时

    skinppLoadSkin((CHAR*)"vladstudio.ssk");

    就OK了。

    4. 其有关使用和SkinMagic类似,皮肤DLL都是动态生成的,项目exe都需要DLL。在运行时,需要将四个文件放到程序文件下,在生成了DEBUG文件后,如果想让DEBUG文件中的程序可以直接运行,那就需要将皮肤文件与DLL动态连接库文件都放到DEBUG文件中,RELEASE文件中一样,打包时就将四个文件一起打包.

    Skin++的菜单和下拉框(滑动条)显示正常,使用较方便。

    附件:见文件

    有关链接:

    MFC学习之 SKIN++皮肤使用方法

    http://blog.csdn.net/ksp416/article/details/50198781

     http://blog.csdn.net/suxinpingtao51/article/details/44036163

    http://blog.sina.com.cn/s/blog_6c86952d01013fzd.html

    http://www.cnblogs.com/phinecos/archive/2008/04/14/1152696.html

    http://www.emsky.net/bbs/archiver/?tid-28229.html

  • 相关阅读:
    Sunday算法
    砝码称重 洛谷 1441
    树秀于林风必摧之——线段树
    常用stl(c++)
    Vue 根组件,局部,全局组件 | 组件间通信,案例组件化
    Win下JDK的安装和简单使用教程
    ubuntu服务器远程连接xshell,putty,xftp的简单使用教程
    ubuntu下安装pdo和pdo_mysql扩展
    服务器和域名的简单个人认知
    对大一一年的总结和对大二的规划
  • 原文地址:https://www.cnblogs.com/zwh0214/p/6102942.html
Copyright © 2011-2022 走看看