使用SkinMagic美化MFC对话框

来源:互联网 发布:oracle查看数据库状态 编辑:程序博客网 时间:2024/06/04 18:39


    我在看一本王艳平的《Windows程序设计》里面第七章提到了使用SkinMagic美化界面的问题。书上讲的不明不白网上也有各种教程,几天终于自己把SkinMagic应用到了MFC程序中,快哉快哉!!!!

    SkinMagic的开发包可以在http://download.csdn.net/source/3292405下载。

一、 打开VC6.0,新建一个MFC基于对话框的应用程序。把工程命名为Skin。

二、 在CSkinAPP中添加:

      #include "SkinMagicLib.h"

     //注意,如果MFC是动态链接到工程中的,则应该选择SkinMagicLibMD6Trial.lib库

     #pragma comment(lib,"SkinMagicTrial.lib")  //这一步是添加SkinMagicTrial.lib库文件,如果在这里添加了之后,那么第七步骤就可有可无了,或者是在这里不要这一行,而是用第七步骤中的方法添加库文件。

三、将SkinMagicLib.h,SkinMagicTrial.dll,SkinMagicTrial.lib,和皮肤文件"corona.smf"添加到当前目录;

四、在CSkinApp类的InitInstance()函数创建主窗口之前,就是在此函数开始位置添加:

    //===SkinMagic===

 

    //初始化SkinMagic库

    VERIFY(InitSkinMagicLib(AfxGetInstanceHandle(),"Skin", NULL, NULL));//此函数的第二个参数 "Skin"是当前工程名

    //从资源中加载皮肤文件。也可以用代码“LoadSkinFile("corona.smf")”直接从文件中加载

    if(LoadSkinFromResource(AfxGetInstanceHandle(),(LPCTSTR)IDR_SKINMAGIC1, "SKINMAGIC"))

    {     //上面的函数的第二个参数IDR_SKINMAGIC1是自己添加到工程中的资源,下面还会提到。

        //设置对话框默认皮肤

        SetDialogSkin("Dialog");

    }

五、  在CSkinApp类中重载虚函数ExitInstance()  添加:ExitSkinMagicLib();

   即:BOOL CSkinApp::ExitInstance()

       {

           ExitSkinMagicLib();

           return CWinApp::ExitInstance();

        }

六、 修改资源文件:

   单击菜单命令Insert/Resource..弹出插入资源对话框;单击按钮”Import“,导入资源皮肤corona.smf到工程中;因为这不是标准资源,所以会弹出自定义资源类型对话框,这里输入SKINMAGIC单击OK按钮。


七、添加库文件支持()//其实如果在第二步骤中有  #pragma comment(lib, "SkinMagicTrial.lib")这句,那么在这里的一步就可以忽略了

    选择菜单栏工程/ 设置,在连接—>对象/库模块处,添加库文件SkinMagicTrial.lib。

 

下面是美化后的对话框效果:



皮肤文件如下:



转   http://hi.baidu.com/gongziya/item/bcc247a413e6a62b8819d3ed 

原创粉丝点击