使用SkinMagic美化界面

使用SkinMagic美化界面  

2010-01-11 17:28:46|  分类: VC手记 |  标签: |字号 订阅

首先从http://www.vckbase.com/tools/assist/SkinMagic2.21TrialCracked.rar下载skinMagic 2.21。

基本的使用方法可以查得到。但是具体到一个特定的程序,查到的资料是不够的。从下载的包里面可以看到一个手册,英文的,研究了一天终于领悟了使用方法。

根据我的需要, 美化步骤如下:

1.使用SkinMagicBuilder.exe建了一个皮肤文件

  点击menubar上的Tools,选择Skin wizard,出现以下界面:

使用SkinMagic美化界面 - wingjang - wingjang的博客


选择自己需要的caption button,如果此时没有选择,而是在后面手工添加,需要自己增加button的映射。

点击‘下一步’,出现

使用SkinMagic美化界面 - wingjang - wingjang的博客

选择需要美化的object,看到以下界面:

使用SkinMagic美化界面 - wingjang - wingjang的博客

在这个界面里,可以增加需要的bitmap图片,如果此时不添加,也可以在后面添加。

点击‘完成’,出现

使用SkinMagic美化界面 - wingjang - wingjang的博客

可以进行编辑,双击‘Mainframe’,可以看到效果图:

使用SkinMagic美化界面 - wingjang - wingjang的博客

上面的几个caption button分别对应系统菜单、最小化、最大化、关闭。点击button,该button的属性会在右边出现,点击‘Normal’,会出现编辑button图片的界面:

使用SkinMagic美化界面 - wingjang - wingjang的博客

点击下拉框选择一个图片(只能选择已经load的图片,如果发现需要的图片没有load,可以回到主界面,右键-Load Image,或者在菜单栏选择Objects—Load Image),选择之后拖动小红点,选择需要用到的部分,小红点拉成矩形之后可以移动。也可以在左边的Selection区域直接输入图片坐标。Zoom可以放大图片,更好的观察效果。

已经选择的caption button或者其他object可以删除,当然,也可以添加新的object。

因为要在菜单栏增加button,所以需要添加caption button,如下图

使用SkinMagic美化界面 - wingjang - wingjang的博客

单击‘SkinCaptionButton’,然后在‘Mainframe’上点击鼠标,就会有一个新的caption button出现在界面上,button的位置可以调整。


如果需要在菜单栏增加文字,比如在左上方显示“播放器”,那么需要增加一个SkinCaptionStatic对象。

2.把皮肤文件应用到VC

  因为增加了新的captionbutt,需要在程序中做消息映射,所以在编辑皮肤文件时,给每个button指定一个ID,这个ID可以在右边的属性栏里编辑。当然,这个ID必须要和VC工程中的资源ID不重复,可以查看Resource.h,确认ID没有和已有的资源ID重复。

  保存皮肤文件之后,点击File—export,保存.h文件,例如是SkinMagicID.h。

使用SkinMagic美化界面 - wingjang - wingjang的博客

SkinMagicID.h文件的内容都是对一些ID的定义,例如: #define IDC_ROLLWINDOW 5001

把SkinMagicID.h加入到工程。

在*Dlg.cpp文件里加上:#include "SkinMagicID.h"

并在消息映射代码部分,加上对button的处理:

BEGIN_MESSAGE_MAP(CPlayerDlg, CDialog)
//{{AFX_MSG_MAP(CPlayerDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_DESTROY()
ON_WM_CLOSE()
//}}AFX_MSG_MAP
ON_COMMAND( IDC_ROLLWINDOW , OnRollWindow )
END_MESSAGE_MAP()

以上的‘ON_COMMAND( IDC_ROLLWINDOW , OnRollWindow )’,代表在点击IDC_ROLLWINDOW的时候,执行OnRollWindow函数。

为了使用皮肤,还需要进行以下的设置:

在工程中添加SkinMagic的库文件,project—setting,选择link,category选择input,在additional library path里面填上SkinMagicTrial.lib的完整路径

使用SkinMagic美化界面 - wingjang - wingjang的博客

在stdafx.h文件里面添加如下代码:

#include "SkinMagicLib.h"

#pragma comment(lib,"SkinMagicTrial.lib")

把SkinMagicLib.h添加到工程。将SkinMagicTrial.dll拷贝到工程目录。

在*App类的InitInstance()函数的开头加上以下代码:

VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), _T("ReadUI") ,NULL,NULL ) );

VERIFY( 1 == LoadSkinFile(“皮肤文件.smf”));

在ExitInstance()函数里加上:ExitSkinMagicLib();

点击view—classwizard,为*Dlg类添加WM_CREATE消息的处理函数Oncreate,在Oncreate函数开头加上代码:

VERIFY( 1 == SetSingleDialogSkin( m_hWnd, "MainFrame" ) );

EnableWindowScrollbarSkin( m_hWnd , SB_BOTH );

PS,因为在创建皮肤文件的时候,Name为"MainFrame",所以这里用"MainFrame",当然,你可以把它改成任何合法的字符串。

猜你喜欢

转载自blog.csdn.net/chan_52/article/details/8961436
今日推荐