- 浏览: 2031365 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (651)
- ACE (35)
- BAT (9)
- C/C++ (116)
- fast-cgi (14)
- COM (27)
- python (59)
- CGI (4)
- C# (2)
- VC (84)
- DataBase (29)
- Linux (96)
- P2P (6)
- PHP (15)
- Web (6)
- Memcached (7)
- IME输入法 (11)
- 设计模式 (2)
- 搜索引擎 (1)
- 个人情感 (4)
- 笔试/面试 (3)
- 一亩三分地 (33)
- 历史 (2)
- 地理 (1)
- 人物 (3)
- 经济 (0)
- 不仅仅是笑哦 (43)
- 小故事大道理 (2)
- http://www.bjdsmyysjk120.com/ (0)
- http://www.bjdsmyy120.com/ (0)
- 它山之石可以攻玉 (15)
- 大学生你关注些什么 (28)
- 数据恢复 (1)
最新评论
-
luokaichuang:
这个规范里还是没有让我明白当浏览器上传文件时,STDIN的消息 ...
FastCGI规范 -
effort_fan:
好文章!学习了,谢谢分享!
com技术简介 -
vcell:
有错误os.walk(strPath)返回的已经是全部的文件和 ...
通过python获取目录的大小 -
feifeigd:
feifeigd 写道注意:文章中的CPP示例第二行 #inc ...
ATL入门:利用ATL编写简单的COM组件 -
feifeigd:
注意:文章中的CPP示例第二行 #include " ...
ATL入门:利用ATL编写简单的COM组件
magicskin在vc中的使用
经过努力试验终于搞定了,写下过程:
我发现我没有使用从vckbase下载的破解版的lib文件。
在对话框程序里使用skinmagic皮肤控件
1
先把skinmagiclib.h文件拷贝入工程目录,
在左边的fileview卡片里面,在Resource files栏目加入SkinMagicLib.lib和DETOURS.lib,这两个文件的路径在哪里无所谓,只要加入就行。可以把它们拷贝入工程的目 录下。还有,可以把smf皮肤文件都拷贝入工程的目录下,方便加载皮肤。
在FileView卡片里面加入SkinMagicLib.h文件,并在stdafx.h中加入#include "SkinMagicLib.h"
2
在C**App类的文件里面找到InitInstance函数
在函数开始部分加入
VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), "Demo" ,
NULL,
NULL ) );//Demo字样可以随意修改
VERIFY( 1 == LoadSkinFile("corona.smf") ); //皮肤文件只要在同一目录下就行。如果没有
//就编译出错
3
按Ctrl+W,看到ClassWizard,再给C**App类加入ExitInstance函数
内容是
ExitSkinMagicLib();//为了退出时清理内存
return CWinApp::ExitInstance();
4
在C**Dlg::OnInitDialog()函数里面
结束部分加入
SetWindowSkin( m_hWnd , "Dialog" );
SetDialogSkin("Dialog");
5
加一个按钮或者菜单,内容是“load skin”
添加按钮点击事件的代码为
char strExt[]= "SkinMagic Files(*.smf)|*.smf||";
CFileDialog dlg( TRUE, "*.smf", "*.smf" , OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
, strExt , this );
if( dlg.DoModal() == IDOK )
{
LoadSkinFile( (char*)(LPCSTR)(dlg.GetPathName()) );
}
这样就能够随意从文件里面加载皮肤了。
又补:
我又试验了一下,把下载的破解版SkinMagicLib.lib(大小2.4m),替换以前的lib文件(大小967k)
也能够顺利编译。
以下是破解版里面的readme
////
SkinMagic 2.0B1 破解版
作者:BingoStudio
一、用Skin++要带DLL,SSK文件,很不爽!发现SkinMagic 2.0B1的皮肤可用资源,不用带DLL,真是方便!
二、SkinMagic 2.0B1的下载版本是TRAIL版,编译后运行的提示框很讨厌,破之!!
////
不明白他强调的是什么弹出的对话框,因为我一直没有看到有什么要注册的对话框出现,无论是原来的skinmagiclib.lib还是破解的skinmagiclib.lib
网络上的SkinMagic版本繁多,而且试用版,破解版并存,各版本之间支持的皮肤文件也不尽相同,因此经常有人在网上询问为何添加了 SkinMagic没有效果甚至导致程序崩溃之类的问题。这里有一个可用的破解版本(包含VC6使用的库和支持的常用皮肤文件)。请注意这个包的大小为 1.31M,如果小于1.31M说明下载不完全,则无法使用,建议使用迅雷下载。
一:文件说明
SkinMagicLib.h 必须的头文件,请添加到工程中。
SkinMagic.lib + SkinMagic.dll 动态链接库配套使用
编译时需要在工程中添加SkinMagic.dll,程序运行时需要SkinMagic.dll
以下版本的编译出来的程序运行时不再依赖SkinMagic.dll
SkinMagicLibMD6.lib 静态链接库,用于VC6的Release版编译
SkinMagicLibMT6.lib 静态链接库,用于VC6的Debug版编译
二:使用步骤
1。把SkinMagicLib.h, SkinMagicLibMT6.lib, SkinMagicLibMD6.lib放到你的VC6工程目录下
2。在StdAfx.h中添加
#include "SkinMagicLib.h"
3。在工程设置中添加对应的库
Win32 Release中填上SkinMagicLibMD6.lib
Win32 Debug中填上SkinMagicLibMT6.lib
4。在InitInstance()函数的开始处添加初始化SkinMagic资源的代码。
VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));
5。在InitInstance()函数中加载皮肤文件并设置程序皮肤。
你可以选择添加皮肤文件到资源中,并编译到程序中。或者程序在运行时动态加载皮肤文件
a. 比如添加corona.smf,设置资源类型为"SKINMAGIC", 资源ID为IDR_SKIN_CORONA
(也可以这样子. VERIFY( 1 == LoadSkinFile("corona.smf"));)
CBossKeyDlg dlg;
m_pMainWnd = &dlg;
//加载SkinMagic皮肤
VERIFY(1 == LoadSkinFromResource(NULL, (LPSTR)IDR_SKIN_CORONA, "SKINMAGIC"));
VERIFY(1 == SetWindowSkin(m_pMainWnd->m_hWnd, "MainFrame"));
VERIFY(1 == SetDialogSkin("Dialog"));
int nResponse = dlg.DoModalEx(bStartShow);
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
b. 程序在运行时动态加载皮肤文件
CBossKeyDlg dlg;
m_pMainWnd = &dlg;
//加载SkinMagic皮肤
VERIFY(1 == LoadSkinFile("corona.smf"));
VERIFY(1 == SetWindowSkin(m_pMainWnd->m_hWnd, "MainFrame"));
VERIFY(1 == SetDialogSkin("Dialog"));
int nResponse = dlg.DoModalEx(bStartShow);
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
6。在ExitInstance()函数中释放SkinMagic资源
//释放SkinMagic资源:
ExitSkinMagicLib();
trip:
貌似有点小问题, 在有些VC6工程中, Release版和Debug版编译都应该选择SkinMagicLibMD6.lib, 视乎你链接时使用的运行时库类型而定
发表评论
-
__declspec(novtable) 的用法
2010-11-27 14:37 1578__declspec(novtable) 的用法 __d ... -
解决URLDownloadToFile缓存问题的两种方法
2010-09-09 15:18 2906解决URLDownloadToFile缓存问题的两种方法 ... -
修改richedit背景
2010-07-19 22:52 1647RichEditCtrl::SetBackgroundCo ... -
使用ADO封装类的数据库程序开发实例(下)
2010-07-12 15:30 1474使用ADO封装类的数据库 ... -
使用ADO封装类的数据库程序开发实例(上)
2010-07-12 15:28 1215使用ADO封装类的数据库 ... -
VC防止窗口和控件闪烁的方法
2010-07-09 21:16 20221、将Invalidate()替换为Invalidate ... -
防止窗口闪烁地办法
2010-07-09 21:13 1512防止窗口闪烁地办法 也许我们都碰到过这种情况,当你 ... -
使用ADO _ConnectionPtr
2010-07-06 16:04 5265// GetUser.cpp : Defines the ... -
VC用ADO访问数据库全攻略
2010-07-06 15:29 1799VC用ADO访问数据库全 ... -
深入GetMessage和PeekMessage (引自-MSDN技术组)
2010-06-10 16:59 3726深入GetMessage和PeekMessage (引自 ... -
界面编程总结(1)
2010-06-02 13:32 4011原文地址:http://blog.csdn.net/byx ... -
获取信息的有关Windows API
2010-05-27 10:01 3146获取信息的有关Windows API 1.窗口信息 ... -
VC中如何实现窗口的隐藏
2010-05-13 10:08 7862VC中如何实现窗口的隐藏 用MFC做的Dialog ... -
SetConsoleCtrlHandler 处理控制台消息
2010-05-07 17:32 18142SetConsoleCtrlHandler 处理控制台消 ... -
解决决错误: error C2850: 'PCH header file'
2010-04-27 19:45 1953解决决错误: error C2850: 'PCH hea ... -
VC++ GDI+编程的字体和文本绘制
2010-04-13 13:12 7979字体是文字显示和打印的外观形式,它包括了文字的字样、风格和尺寸 ... -
VC利用GDI+显示透明的PNG图片
2010-04-12 16:59 115391.在你将要使用GDI+的工程中,完成初始化 ... -
GDI+编程基础(一)GDI+ Vs GDI
2010-04-12 15:59 2336下载源代码一、GDI GDI是位于应用程序与不同硬件之间 ... -
VC画图
2010-04-12 15:50 1539BOOL DrawPic(HDC hdc, TCHAR* ... -
对话框的数据交换--MFC深入浅出
2010-04-12 10:43 2458对话框数据交换指以下两种动作,或者是把内存数据写入对应的控 ...
相关推荐
1. 在项目中引入MagicSkin的DLL文件,确保其路径正确,并添加到项目的依赖库中。 2. 引入"SkinMagicLib.h"头文件,声明所需的函数和类型。 3. 初始化MagicSkin库,一般在应用程序启动时进行。 4. 加载皮肤文件,这一...
在VC中使用ADO实例,可以参考,下载看看。
VC中如何定义全局变量VC中如何定义全局变量VC中如何定义全局变量VC中如何定义全局变量VC中如何定义全局变量VC中如何定义全局变量VC中如何定义全局变量VC中如何定义全局变量VC中如何定义全局变量VC中如何定义全局变量...
在本文中,我们将探讨如何在VC中使用Labview控件cwui.ocx,并提供一个示例和源码。 首先,`cwui.ocx`是Labview控件的一种,它是一个ActiveX控件,可以在其他支持ActiveX技术的应用程序(如VC)中嵌入和使用。要将这...
然后在VC项目中,通过`#pragma comment(lib, "myqtlib.lib")`来指定需要链接的库,并且在头文件中包含QT库的接口,就可以使用导出的类了。同时,确保VC项目配置正确,包含QT库的头文件路径和库文件路径。 在实际...
总之,使用VBA脚本在VC中能显著提高开发效率,增加项目的灵活性。通过学习和实践,你不仅可以掌握VBA的基本语法,还能了解如何将脚本技术融入到C++项目中,提升软件的功能和用户体验。对于初学者,这是一个宝贵的...
[180]VC中使用mscomm控件进行串口通信.zip上位机开发VC串口学习资料源码下载[180]VC中使用mscomm控件进行串口通信.zip上位机开发VC串口学习资料源码下载[180]VC中使用mscomm控件进行串口通信.zip上位机开发VC串口...
【描述】中的"简单易学"表明magicskin软件的设计初衷是为了方便用户和开发者快速理解和使用。它允许用户选择并应用不同的皮肤源文件,这些皮肤源文件包含了各种视觉元素,如窗口样式、图标、按钮等,可以显著改变...
下面我们将深入探讨如何在VC++中使用Picture控件来显示图片,以及相关的知识点。 首先,你需要了解Picture控件并不是VC++标准库中的原生控件。通常,在MFC(Microsoft Foundation Classes)中,我们使用CStatic类来...
自2008年起,全国计算机等级考试开始全面采用VC6.0作为C语言上机考试的环境,因此了解如何在VC6.0中编写和调试C语言程序变得尤为重要。 #### 三、在VC6.0中运行C程序 ##### 1. 启动VC6.0 - **步骤**:在Windows...
7. **头文件和库**:VC7引入了新的标准库实现,如STLPort,而在VC6中使用的是老版本的Microsoft STL。可能需要修改包含和链接库的路径,以指向VC6的版本。 8. **错误和警告**:VC7可能容忍的代码在VC6中可能产生...
这个压缩包文件"VC中使用Duilib的十几个例子"显然是为了帮助开发者理解并掌握如何在VC项目中有效地应用Duilib。 首先,我们来看一下Duilib的核心特点: 1. **XML布局**:Duilib使用XML文件来定义窗口布局和控件...
在本篇文章中,我们将深入探讨VC9、VC11和VC14这三种不同版本的32位运行库,以及它们在安装和使用PHPStudy等软件时的重要性。 **1. VC9 (Visual C++ 2008)** VC9是微软的Visual Studio 2008编译器生成的运行库,它...
为了在Visual C++(简称VC)环境中使用GDAL,首先需要完成相应的安装和配置步骤: 1. **Include目录**:这是开发过程中所需的头文件所在位置。确保将此目录添加到VC的“包含文件”路径中。 2. **Lib目录**:包含...
标题中的“VC7工程转换为VC6工程的工具.rar”指的是一个可以帮助用户将基于Visual C++ 7(即Visual Studio...使用时,应仔细阅读提供的文档,并根据需要调整工程设置,确保转换后的项目能够在VC6环境中顺利编译和运行。
接下来,随着微软的更新,我们有VC7.0(即VC++ .NET 2002)、VC7.1(VC++ .NET 2003)、VC8.0(VC++ 2005)、VC9.0(VC++ 2008)、VC10.0(VC++ 2010)、VC11.0(VC++ 2012)、VC12.0(VC++ 2013)、VC14.0(VC++ ...
描述中提到的问题是关于如何使一个使用VC11编译的程序能够在只安装了低版本VC6运行时库的系统上运行。 首先,我们要理解PE文件头。PE文件头是Windows操作系统用来识别和加载可执行文件的重要组成部分。它包含了关于...
在VC(Visual C++)开发环境中,使用汇编...总之,通过研究和实践这个“VC中使用汇编程序模块的例子”,开发者可以深入理解如何在高级语言项目中有效地结合汇编语言,提升程序性能,同时掌握VC与汇编代码交互的技巧。
本主题涉及的是易语言在不同Visual C++版本下的编译链接器,包括vc6linker、vc7linker、vc8linker、vc9linker以及vc2010linker。这些链接器是易语言与微软Visual Studio编译环境相整合的关键组件,用于将易语言编写...