使用SkinMagic实现换肤
1、将SkinMagicTrial.dll放置在当前目录中,如果需要直接双击执行的话还要放到Debug文件夹里
3、在项目的stdafx.h文件中加入头文件 #include "SkinMagicLib.h"
说明:
int InitSkinMagicLib( //初始化SkinMagic工具库
HINSTANCE hInstance, //应用程序句柄
char* szApplication , //皮肤文件中定义的应用程序名,置为NULL即可
char* szRegCode, //SkinMagic的使用注册码。若无置为NULL
char* szReserved2 //保留位,为NULL
);
4、调入皮肤文件:
皮肤的调用有两种方法,一是直接从皮肤文件中调用,另一种方法是从资源文件中调用,分别说明如下:
1)从皮肤文件中调用皮肤:紧接上句,加入如下代码
VERIFY( 1 == LoadSkinFile("corona.smf"));
2)从资源文件中调用皮肤:
VERIFY(1 == LoadSkinFromResource(NULL,"FUTURA","skin"));
说明:
int LoadSkinFromResource(
HMODULE hModule, //包含皮肤文件的模块句柄,若NULL表面在本模块中
char* lpSkinName , //皮肤资源的名称
char* lpType); //资源的类型
5、为窗口添加皮肤:
1)为标准窗口(拥有标题栏、系统菜单、可变大小等特征,比如文档/视图结构和有菜单的对话框)添加皮肤,通常用于主窗口。在应用程序类的InitInstance()函数的底部加入如下代码:
VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
说明:
int SetWindowSkin(
HWND hWnd, //要使用皮肤的窗口句柄
char* lpSkinName //为skinFrameWnd对象指定的名称
);
2)为对话框添加皮肤
在对话框显示之前调用,通常在应用程序初始化函数中调用
VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
VERIFY( 1 == SetDialogSkin( "Dialog" ) );
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
说明:
int SetDialogSkin(
char* lpSkinName //为skinFrameWnd对象指定的名称
);
使用该函数后,以后程序创建的对话框都将使用该皮肤,但对话框大小不可变。
3)为单个对话框窗口添加皮肤,例如在对话框视图中:重载对话框视图的创建函数OnCreate,加入如下代码:
VERIFY( 1 == SetSingleDialogSkin( m_hWnd, "Dialog" ) );
EnableWindowScrollbarSkin( m_hWnd , SB_BOTH );
说明:
int SetSingleDialogSkin(
HWND hWnd, //要使用皮肤的窗口句柄
char* lpSkinName //为skinFrameWnd对象指定的名称
);
int EnableWindowScrollbarSkin( //为滚动条添加皮肤
HWND hWnd, //要使用皮肤的窗口句柄
int* fnBar //要使用皮肤的滚动条,SB_BOTH表明是横竖都是用皮肤
);
7、释放SkinMagic资源
重载应用程序的虚函数ExitInstance(),添加如下代码:
ExitSkinMagicLib();
转载于:https://blog.51cto.com/shuiqing/302421
使用SkinMagic实现换肤相关推荐
- skinmagic对VC中程序窗口的换肤
一直以来没怎么关心过程序界面的开发,最近想对程序界面的美化学习一下. 下面先展示一下这次开发所实现的效果: 程序我已经上传到CSDN上面了,同时我所使用的skinmagic包也已经上传. 程序主要实现 ...
- SkinMagic——MFC界面换肤美化
SkinMagic--MFC界面换肤美化(完整步骤) 一. 下载并解压SkinMagic https://pan.baidu.com/share/link?shareid=1666255608& ...
- 关于如何换肤、子类化的解决方案
对于应用程序的换肤及子类化.下面是我尝试过一些方法,以在CAboutDlg中子类化其中的Button为例: 第一种:直接用现成的类 1.自己写一个类class CButtonXP : public C ...
- VC应用程序的界面换肤工具集合
本人由于急着赶一个软件的说明文档,急需修改软件的界面,写代码显然是来不及的,所以在网上搜了好多换肤工具来试用,试用好几个,其中比较成功的有两个,其他的由于时间有限,没有仔细摸索,现不管三七二十一通通集 ...
- 几种换肤软件使用问题
几种换肤软件的使用和使用中的BUG ...
- android view设置按钮颜色_Android 主题换肤技术方案分析
写在前面 Android TV 电视开发,主题换肤,我感觉有两种层级的方式,一种是 系统级,另一种 是应用级, 我记得很早在 Linux 桌面开发的时候,我们之前的公司在GTK+上也实现了一套换肤UI ...
- Swift 换肤方案的实现使用SwiftTheme框架
SwiftTheme 框架进行换肤 本地创建多个plist文件 设置不同图片颜色数组 飞机票 demo Foundationimport SwiftTheme// 创建一个枚举类型进行换肤 enum ...
- Spring Boot一键换肤,so easy!
SpringMVC 源码分析系列最后一篇,和大家聊一聊 Theme. Theme,就是主题,点一下就给网站更换一个主题,相信大家都用过类似功能,这个其实和前面所说的国际化功能很像,代码其实也很像,今天 ...
- vue中利用scss实现整体换肤和字体大小设置
一.前言 利用Sass预处理实现换肤和字体大小调整. 思路及达到的效果:字体大小的适配使用window.devicePixelRatio的值和需要调整的差量进行控制.页面初始化是的字体适配可以根据de ...
最新文章
- The request was denied by service delegate (SBMainWorkspace) for reason: Uns
- 辽宁省风力发电行业“十四五”前景规划及竞争策略分析报告2022-2028年版
- 黄海广博士的知乎高赞(1000+)文章分享
- 搜狗输入法错误推送地震信息,但其背后的真正价值值得思考
- 1.2-Nginx编译安装
- 论文浅尝 - EMNLP2020 | 低资源跨语言实体链接中的设计挑战
- 性能优化(9):切记要避免重定向
- 顺风车订单已结束仍在录音 嘀嗒出行回应录音机制
- leetcode题解54-螺旋矩阵
- LOJ#6284. 数列分块入门 8
- Linux命令解释之awk
- 吉林省计算机二级vf试题,计算机等级考试二级VF模拟试题四及答案解析
- appium 原理解析
- VS学习笔记(一)创建C++项目
- CNN训练Cifar-10技巧
- mac系统 彻底删除安全助手
- 1+x2022年9月16日实操题答案
- 【高级Java开发】类QQ聊天工具的设计与实现(代码已上传)
- 源码编译、安装gcc 7
- Xshell 和 Xftp 学校免费版
热门文章
- 10种你必须懂的PPT配色方法
- [Err] [Dtf] 2013 - Lost connection to MySQL server at 'reading initial communication packet', 复制数据问题
- 转] 袁天罡称骨算命法
- 文字版精华总结!你写的爬虫到底违不违法?
- 西农计算机专业好就业么,西北农林科技大学怎么样(十大好就业专业)
- Java解决有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
- win7关闭系统索引服务器,如何优化Win7系统之如何关闭索引服务
- 拿到jar文件,如何快速运行
- nginx配置跨域访问后不生效,仍然显示跨域问题
- 安卓开发学习-Android Studio-12-adapter