SkinMagic——MFC界面换肤美化

SkinMagic——MFC界面换肤美化(完整步骤)

一. 下载并解压SkinMagic

https://pan.baidu.com/share/link?shareid=1666255608&uk=3794066601

二. 解压后相关文件放置路径

1. SkinMagic.dll 
2. SkinMagic.lib 
3. SkinMagicLib.h 

4. corona.smf(将要替换的皮肤)

可放置到工程目录下(如下图的sem_seg文件)


具体如下:全部在sem_seg文件加下





三. 添加头文件


四. 引入头文件

在以下两个cpp文件加入:

#pragma comment(lib,"SkinMagic.lib")//调用皮肤lib  
#include "SkinMagicLib.h" 
如下图所示:



五. 添加代码

在sem_seg.cpp中添加:

VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), _T("SCRIBBLE"), NULL, NULL));//初始化SkinMagic

	VERIFY(1 == LoadSkinFile(_TEXT("corona.smf")));//加载皮肤文件


sem_segDlg.cpp中加入:

VERIFY(1 == SetWindowSkin(this->m_hWnd, TEXT("Dialog")));//设置皮肤样式

注意: 位置一定要紧挨着return语句,否则显示菜单栏

对于有菜单栏的对话框,菜单代码设置如下:

注意: 该句必须紧挨着return语句,不然菜单栏可能不起作用。只有字,没有功能

CMenu *pMenu = new CMenu();
	pMenu->LoadMenu(IDR_MENU1);
	SetMenu(pMenu);

不能设置成类似下面的:

CMenu pMenu;
pMenu.LoadMenu(IDR_MAINFRAME);
SetMenu(&pMenu);


最后界面:



若出现个别界面没有换肤,需在相应的OnInitDialog()的末尾加上

VERIFY(1 == SetWindowSkin(this->m_hWnd, TEXT("Dialog")));//设置皮肤样式

比如:


备注:

本文有参考https://blog.csdn.net/lwqBrell/article/details/53967060

但是,按照这个来出现两个问题:

1. 不显示菜单栏

2. 网上查询之后,菜单栏显示了,但是不起作用


  • 3
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值