[准备工作]

1、将SkinMagicTrial.dll放置在调试目录

2、设置库文件目录,找到SkinMagicTrial.lib文件,在【工具】——【选项】——【目录】(【目录】选择Library files),然后在【路径

】中添加加SkinMagicTrial.lib文件所在路径,如我在工程中新建一个skin文件夹,把SkinMagicTrial.lib文件放置在skin目录中,路径为

“E:/学习/VC++/实验/EX_CTRLSDI/SKIN”
  4、连接库文件SkinMagicTrial.lib,【工程】——【设置】——【连接】,在【对象/库模块】中输入SkinMagicTrial.lib
  5、在所建工程中放置SkinMagicLib.h文件,然后在项目的stdafx.h文件中加入头文件 #include "SkinMagicLib.h"

6、把*.smf皮肤文件放置在skin目录中(可以自己选择放置的目录),然后用记事本打开.rc文件,添加代码如下:

//把皮肤载入工程资源中

// SKINMAGIC
//

XPBLUE                   SKINMAGIC DISCARDABLE   "skin//xpblue.smf"
CORONA                   SKINMAGIC DISCARDABLE   "skin//corona.smf"

添加完毕后,会发现资源视图中会多了一个“SkinMagic”的目录

7、在App类的InitInstance函数中添加

VERIFY( 1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL ));
VERIFY( 1 == LoadSkinFromResource(NULL, " XPBLUE " , " SKINMAGIC " )); // 加载静态皮肤 资源

8、使用

m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
   //添加代码

VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));//为窗口添加皮肤
    VERIFY( 1 == SetDialogSkin( "Dialog" ) );//为对话框添加皮肤

参考:

  3、为窗口添加皮肤:

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表明是横竖都是用皮肤
  );
  9、释放SkinMagic资源
 
  重载应用程序的ExitInstance()函数,添加如下代码:

ExitSkinMagicLib();

2009-11-24

VC中皮肤空间的使用相关推荐

  1. c 语言 多进程,VC++中进程与多进程管理的方法详解

    本文实例讲述了VC++中进程与多进程管理的方法,分享给大家供大家参考.具体方法分析如下: 摘要: 本文主要介绍了多任务管理中的多进程管理技术,对进程的互斥运行.子进程的创建与结束等作了较详细的阐述. ...

  2. VC中的宏 (#define) 与预处理 (#if/#ifdef/#pragma) 的使用方法总结。

    C/C++ 预定义宏 例子:C/C++ 预定义宏的取值 C/C++ 预定义宏用途:诊断与调试输出 CRT 的诊断与调试输出:assert, _ASSERT/_ASSERTE, _RPTn/_RPTFn ...

  3. 浅谈Python和VC中的编码问题(转)

    以前编码问题总能让自己凑或蒙过去,最近要做一个项目服务器端用python写,客户端用c++,工程编译的字符集使用UNICODE.之间通过socket进行通信,通信过程中编码转换问题把我搞得晕头转向,逼 ...

  4. VC中GetLastError()获取错误信息的使用,以及错误代码的含义

    在VC中编写应用程序时,经常需要涉及到错误处理问题.许多函数调用只用TRUE和FALSE来表明函数的运行结果.一旦出现错误,MSDN中往往会指出请用GetLastError()函数来获得错误原因 可问 ...

  5. VC中ADO连接SQLSERVER的几种标准方式?

    VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看. 正文 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE D ...

  6. VC++中进程与多进程管理的方法[转]

    VC++中进程与多进程管理的方法      关键词: VC++6.0:进程:环境变量:子进程 进程 进程是当前操作系统下一个被加载到内存的.正在运行的应用程序的实例.每一个进程都是由内核对象和地址空间 ...

  7. 在VC中使用ADO开发数据库应用程序

    在VC中使用ADO开发数据库应用程序 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 ...

  8. list在c语言中的作用,在C语言中大略实现VC++中的LISTARRAY功能方法(一)

    在C语言中大概实现VC++中的LISTARRAY功能方法(一) #ifndef __LISTARRAY_H__ #define __LISTARRAY_H__ #include "rtthr ...

  9. 圆弧的函数c语言,VC++中Arc函数画圆弧

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:VC++中Arc函数画圆弧回答:BOOL Arc(int x1,int y1,int x2,int y2,int x3,int y3 ...

最新文章

  1. 为什么以太网的最小数据帧长度为64字节?
  2. 中国中老年化妆品行业消费需求现状与产销规模前景展望报告2022年
  3. Linux桌面环境介绍以及优缺点分析
  4. java 雪花特效_java实现图片飘雪花的特效
  5. PHP 循环删除无限分类子节点
  6. c#获取当前时间 毫秒_《Linux设备驱动程序》(十二)——时间操作(一)
  7. 快速pow和sqrt的小技巧 hdu4282
  8. 【2021新版】一线大厂 Go 面试题合集
  9. 你真的了解Python吗?这篇文章可以让你了解90%,赶紧收藏!
  10. 【华为云技术分享】一行代码就能写一个日志打印组件,你信吗?为你揭晓LiteOS中日志打印组件的核心
  11. java json重命名,eclipse中java变量怎么变成json格式的编码?
  12. 新冠病例继续攀升 苹果关闭纽约市所有实体店
  13. 判断回文串时忽略既非字母又非数字的字符
  14. printk打印机别
  15. oracle创建dblink问题
  16. 用线性同余法生成伪随机数
  17. Rust vs. Go:为什么他们在一起更好
  18. 程序员是如何下载的视频?
  19. 揭秘北京奥运会上的中国保镖[转贴]
  20. Google guava之Multimap简介说明

热门文章

  1. 计算机网络信息中心几号知道成绩,中科院计算机网络信息中心招生常见问题答疑...
  2. 成都写字楼租金价格?国际文创产业园数字影像产业总部基地大厦租金价格出炉!
  3. 站在中间立场看 360 VS QQ
  4. SpringBoot集成Mybatis Plus
  5. C语言:用指针法输入12个整数,然后按每行4个数输出
  6. 【判断语句If】一、键盘录入一个数据,判断该月份的季节。二、李雷买新手机
  7. 以下属于python中文分词方向第三方库的是_以下选项中是 Python 中文分词的第三方库的是( )...
  8. 关于三角形内切圆、外接圆的数学问题
  9. 常用分析问题的几种方法
  10. 写一篇关于小学语文教育教学的论文4000字