在SkinMagic使用过程中,经常遇到以下几个问题:

1. 静态加载皮肤文件时,资源文件IDR_SKIN_CORONA可能会报错:未声明的标识符

 解决方法:添加头文件”Resource.h“

2. 界面需要添加换肤菜单功能,只需要:

 解决方法:在界面中加入换皮肤菜单,及相应的函数,在函数中加载皮肤。注意只需要更换皮肤资源即可,无需重设SetDialogSkin函数,否则报错。

void CMainFrame::OnDevior()
{
  LoadSkinFromResource( AfxGetInstanceHandle() , "DEVIOR" ,"SKINMAGIC") ; //注意不能重新设SetDialogSkin函数,否则报错
}

3.  对话框美化时,Skinmagic无法显示菜单 

  用到Skinmagic皮肤库的时候,在App类的InitInstance函数中加载皮肤库成功后,却发现自己的菜单无法正常显示了!

解决办法:加载皮肤文件类型在InitInstance函数中实现,加载皮肤名字的时候在Dlg类中加载。

在App类的InitInstance()函数中只需要输入:

VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), NULL , NULL,  NULL ) );
VERIFY( 1 == LoadSkinFromResource( AfxGetInstanceHandle() , _T("IDR_SKINMAGIC"), _T("SKINMAGIC") ) );

在Dlg类中的OnInitDialog()类中输入:

SetWindowSkin( m_hWnd, "Dialog" );  //这是重点,m_hWnd 是你的主对话框的窗口句柄
SetDialogSkin( "Dialog" ); //是为了给你以后的对话框添加皮肤的!

4. 对话框美化时,列表滚动条消失

解决方法:

如果是为单个对话框窗口添加皮肤,例如在对话框视图中:可重载对话框视图的创建函数OnCreate,加入如下代码:

VERIFY(  == SetSingleDialogSkin( m_hWnd, "Dialog" ) );
EnableWindowScrollbarSkin( m_hWnd , SB_BOTH );

其中:int EnableWindowScrollbarSkin( //为滚动条添加皮肤 
HWND hWnd, //要使用皮肤的窗口句柄 
int* fnBar //要使用皮肤的滚动条,SB_BOTH表明是横竖都是用皮肤 
);

但需要特别注意的是:

如果同时存在菜单和下拉框(列表滚动条),我目前没有找到方法使两者共存,因此我最终用的是其他的皮肤库。有知道的可以回复我,谢谢!

5. 为了工程发布时,无需依赖dll文件

  使用dll时,程序发布时需要skinmaigc.dll与程序打包,若使用静态库,则无需依赖dll文件.

具体设置:

1). 常规:  右击项目->属性->配置属性->常规,然后在右边的“项目默认值”中的“MFC的使用”选项中选择“在静态库中使用MFC”,

2). 多线程调试:  右击项目-->属性->配置属性->c/c++->代码生成->运行时库->MTd或MT

如果是Debug的“在静态库中使用MFC”,不要使用MDd,改用MTd,然后编译即可通过。

如果是Release版本“在静态库中使用MFC”,不要使用MD,使用MT;

[MFC美化] SkinMagic使用详解3- 常见使用问题解答的更多相关文章

  1. [MFC美化] SkinMagic使用详解2- SkinMagic常用函数介绍

    SkinMagic常用函数介绍 (1)InitSkinMagicLib函数:初始化SkinMagic int InitSkinMagicLib( //初始化SkinMagic工具库 HINSTANCE ...

  2. [MFC美化] SkinMagic使用详解1- SkinMagic使用流程

    [SkinMagic使用流程] 1.工程配置SkinMagic相关文件 2.初始化SkinMagic皮肤文件,窗体加载皮肤 3.释放皮肤资源 特别声明,SkinMagic要是破解版的,如果不是,可能需 ...

  3. [MFC美化] Skin++使用详解-使用方法及注意事项

    主要分为以下几个方面: 1.Skin++使用方法 2.使用中注意事项 一. Skin++使用方法 SkinPPWTL.dll.SkinPPWTL.lib.SkinPPWTL.h ,将三个文件及相应皮肤 ...

  4. [MFC美化] SkinSharp使用详解2-SkinH.h函数介绍

    SkinSharp功能强大,该皮肤库支持完全多种颜色改变等. 下面是静态链接库时的SkinH.h头文件: /*在Stdafx.h文件中加入如下语句 #include "SkinH.h&quo ...

  5. [MFC美化] SkinSharp使用详解1-使用方法

    需要注意的是: 加载换肤后,程序关闭时,无需调用卸载皮肤接口,SkinSharp换肤库会自己完成清理工作.换肤时无需卸载皮肤,直接调用即可. 其DLL使用方法与前面几种皮肤库用法类似.如下: 1. 将 ...

  6. [MFC美化] USkin使用详解-使用方法

    该种皮肤库资料很少,用法与前面几种类似. 它主要有:USkin.dll ,USkin.lib,USkin.h和Sakura.msstyles这四个文件.皮肤格式是.u3.SkinBuilder是USk ...

  7. SpringMVC接受JSON参数详解及常见错误总结我改

    SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一个统一的接口给浏览器还有APP.所以把一个练手项目的前 ...

  8. SpringMVC接受JSON参数详解及常见错误总结

    SpringMVC接受JSON参数详解及常见错误总结 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一 ...

  9. MFC下CSocket编程详解(转)

    原文转自 http://blog.csdn.net/yejiansnake/article/details/2175778 MFC下CSocket编程详解: 1. 常用的函数和注意事项(详细的函数接口 ...

随机推荐

  1. 逐步在Windows上结合CopSSH + msysGit安装安装Git Server同时集成Git使用Visual Studio

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  2. 关于iTunes随机播放和我所不知道的自己

    无意中看到这套题,很有意思,自己做了一下. 规则是这样的:打开你的播放器,我的是iTunes,不管是哪个,总之打开最全的那个播放列表,开启随机播放,按顺序把每首歌名写在下面每道题的后面,比如第一首歌是 ...

  3. Asp.Net Web API 导航3

    Asp.Net Web API 导航   Asp.Net Web API第一课:入门http://www.cnblogs.com/aehyok/p/3432158.html Asp.Net Web A ...

  4. Object-c学习之路四(oc内存管理autorelease)

    再以Student和Book为例作为展示: 1.主函数: // main.m // MemoryManagement2 // // Created by WildCat on 13-7-24. // ...

  5. jquery.post用法补充(type设置问题)

    jquery.post用法 http://blog.csdn.net/itmyhome1990/article/details/12578275 当使用ajax获取data数据的时候,直接data.f ...

  6. 广告频次控制(frequency capping)

    频次控制介绍 广告中的频次控制是指控制一个用户最多在指定时间内看到一个广告(或相似广告)的次数,比如广告主可以限制一个用户最多只能一天看到一个广告3次(频次控制也可以让publisher来指定,但本文 ...

  7. app wap开发mobile隐藏地址栏的js

    function scrolltol (){ setTimeout ( function () { , ) }, ); } window . onload = function () { if ( d ...

  8. C# 中判断字符串是不是汉字

    //1.用ASCII码判断 //在 ASCII码表中,英文的范围是0-127,而汉字则是大于127,具体代码如下: string text = "是不是汉字,ABC,柯乐义"; ; ...

  9. TCP/IP传输层,你懂多少?

    1. 传输层的主要功能是什么?2. 传输层如何区分不同应用程序的数据流?3. 传输层有哪些协议?4. 什么是UDP协议?5. 为什么有了UDP,还需要TCP?6. 什么是TCP协议?7. 怎么理解协议 ...

  10. Cocos2d-x 截图功能

    2.x-3.x版本                 //获取屏幕尺寸         CCSize size = CCDirector::sharedDirector()->getWinSize ...