zoukankan      html  css  js  c++  java
  • MFC 使用Skin++ 美化皮肤

    查了好几天关于MFC应用程序换肤的资料,经过各种莫名其妙的问题的困扰,现分享一下自己的体会。希望可

    以避免一些弯路。另外会在附上一些资源。

    环境:Windows 7 + VS2012 + SkinSharp(注:Skin++、USkin、SkinMagic 用法相同)

    1. 新建一个工程(工程名:Demo)(比如一个基于对话框的MFC程序)

    如图所示,注意不要勾选Use Unicode libraries ,否则可能会出现以下错误:见图

    2. 添加相关文件(.h .lib .dll 以及皮肤文件)

    下面就以SkinSharp、Skin++、USkin、SkinMagic中的一种(SkinSharp)进行示范,其他三种的操作基本

    是大同小异。如图将SkinH.h和SkinH.lib文件导入工程文件的目录中,如下图所示:

    请注意VC++6.0和VS2012下工程目录的不同之处,应该是Demo->Demo文件夹下(Demo是工程名),

    然后加入工程的Header Files下:

    3. 添加必要的代码

    3.1 在stdafx.h中添加

    #include "SkinH.h"
    #pragma comment(lib, "SkinH.lib")
    如图:


    在BOOL CDemoApp::InitInstance() 函数下写

    SkinH_Attach();
    这句语句是加载默认的皮肤文件:skinh.she

    3.3 试着编译工程,产生Debug文件(或者Release文件)

    将以下文件放入Debug目录(工程根目录下的Debug文件夹)中如图:

    3.4 再次编译工程即可看到换肤的效果:(添加的是只是skinh.she皮肤文件)

    3.5 实现更“自由”的换肤

    将SkinH_Attach(); 改为下句
    SkinH_AttachEx("../Debug/Skins/Green.she", NULL);

    运行效果如下:

        

    3.6 如果出现缺少SkinH.dll, 就将该文件再放到C:WindowsSystem32和C:WindowsSysWOW64文件夹下,

    然后重新编译运行就可以了。

    4. 资源链接

    Skin++、SkinSharp、USkin、SkinMagic以及该例程的代码在如下链接中:

    http://download.csdn.net/detail/u011239916/8750419

    相关链接:http://www.codeproject.com/Articles/13946/Use-the-Free-USkin-Toolkit-to-Skin-your-Applicatio

    以上就是VS2012下MFC对话框应用程序的界面美化,还可以利用皮肤制作软件进行皮肤文件的制作,

    让自己的应用程序告别单调,从此焕发生机!如果在运行中出现问题,可以给我留言,可以交流讨论。感

    谢您的阅读,如有错误和不妥之处,请指点。Thank you very much!

  • 相关阅读:
    给入坑前端的新人的建议
    浅析js闭包
    mongoose之操作mongoDB数据库
    input模拟输入下拉框
    浅析AngularJS自定义指令之嵌入(transclude)
    vue-cli之打包多入口配置
    Node.js之图片上传
    移动端之模态框滚动穿透问题
    浅谈vue之动态路由匹配
    vuex数据持久化存储
  • 原文地址:https://www.cnblogs.com/lize19940412/p/10117106.html
Copyright © 2011-2022 走看看