电竞比分网-中国电竞赛事及体育赛事平台

分享

界面編程總結(jié)(5)

 行走在理想邊緣 2014-06-24

利用界面開(kāi)發(fā)包美化界面

 

 

在程序設(shè)計(jì)中為了界面和業(yè)務(wù)邏輯相分離,將程序員從煩瑣的界面設(shè)計(jì)中徹底解放出來(lái),將精力集中在業(yè)務(wù)功能的實(shí)現(xiàn)上,提高產(chǎn)品的開(kāi)發(fā)效率??梢岳脫Q膚軟件開(kāi)發(fā)包快速開(kāi)發(fā)漂亮的軟件。本文主要介紹幾種換膚軟件開(kāi)發(fā)包,常見(jiàn)幾種換膚軟件開(kāi)發(fā)包包括SkinMagic、SkinFeature、Skin++、AppFace等等。

 

一、SkinMagic

SkinMagic Toolkit是一套功能強(qiáng)大的界面解決方案庫(kù),我們提倡界面和業(yè)務(wù)邏輯相分離,將程序員從煩瑣的界面設(shè)計(jì)中徹底解放出來(lái),將精力集中在業(yè)務(wù)功能的實(shí)現(xiàn)上,提高產(chǎn)品的開(kāi)發(fā)效率。網(wǎng)絡(luò)上的SkinMagic版本繁多,而且試用版,破解版并存,各版本之間支持的皮膚文件也不盡相同,因此經(jīng)常有人在網(wǎng)上詢(xún)問(wèn)為何添加了SkinMagic沒(méi)有效果甚至導(dǎo)致程序崩潰之類(lèi)的問(wèn)題。這里有一個(gè)可用的破解版本(包含VC6使用的庫(kù)和支持的常用皮膚文件)SkinMagicToolkitV2.2.31

(下載地址:http://wh.hust.colin./SkinMagicToolkit2.2.3.1.rar)。

SkinMagic破解版下載: http://www./files/348005/SkinMagic.rar.html

 

1:文件說(shuō)明

SkinMagicLib.h 必須的頭文件,請(qǐng)?zhí)砑拥焦こ讨小?/SPAN>

SkinMagic.lib + SkinMagic.dll 動(dòng)態(tài)鏈接庫(kù)配套使用

編譯時(shí)需要在工程中添加SkinMagic.dll,程序運(yùn)行時(shí)需要SkinMagic.dll

 

以下版本的編譯出來(lái)的程序運(yùn)行時(shí)不再依賴(lài)SkinMagic.dll

SkinMagicLibMD6.lib 靜態(tài)鏈接庫(kù),用于VC6的Release版編譯

SkinMagicLibMT6.lib 靜態(tài)鏈接庫(kù),用于VC6的Debug版編譯

 

2:使用步驟

1).把SkinMagicLib.h, SkinMagicLibMT6.lib, SkinMagicLibMD6.lib放到你的VC6工程目錄下

2).在StdAfx.h中添加

#include "SkinMagicLib.h"

3).在工程設(shè)置中添加對(duì)應(yīng)的庫(kù)

Win32 Release中填上SkinMagicLibMD6.lib

Win32 Debug中填上SkinMagicLibMT6.lib

4).在InitInstance()函數(shù)的開(kāi)始處添加初始化SkinMagic資源的代碼。

VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));

5).在InitInstance()函數(shù)中加載皮膚文件并設(shè)置程序皮膚。

你可以選擇添加皮膚文件到資源中,并編譯到程序中。或者程序在運(yùn)行時(shí)動(dòng)態(tài)加載皮膚文件

a. 比如添加corona.smf,設(shè)置資源類(lèi)型為"SKINMAGIC",  資源ID為IDR_SKIN_CORONA

 

 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. 程序在運(yùn)行時(shí)動(dòng)態(tài)加載皮膚文件

 

 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()函數(shù)中釋放SkinMagic資源

 //釋放SkinMagic資源:

 ExitSkinMagicLib();

 

二、Skin++

作為勇進(jìn)軟件的旗幟性產(chǎn)品Skin++ For VC版,具有簡(jiǎn)單易用、嵌入系統(tǒng)方便、運(yùn)行穩(wěn)定、兼容性強(qiáng)等特點(diǎn)。提供了所有標(biāo)準(zhǔn)控件的Skin解決方案,可以完美地設(shè)計(jì)程序每部分的界面細(xì)節(jié),完全做到了所見(jiàn)即所得的界面效果,滿(mǎn)足了目前所有的Visual C++應(yīng)用程序界面開(kāi)發(fā)需求。本產(chǎn)品徹底改變了Visual C++開(kāi)發(fā)界面難的問(wèn)題,使用本產(chǎn)品可以對(duì)您已有的系統(tǒng)進(jìn)行方便快捷的界面改造,也可以在系統(tǒng)開(kāi)發(fā)的初期,極大地提高系統(tǒng)開(kāi)發(fā)的進(jìn)度,并得到滿(mǎn)意的界面效果。

Skin++使用方法:

1.加載Skin++
0).將SkinPlusPlusDLL.lib,SkinPlusPlus.h,XPCorona.ssk都復(fù)制到當(dāng)前目錄

1).在(VC7)"項(xiàng)目->屬性->鏈接器->輸入->附加依賴(lài)項(xiàng)"中加入SkinPlusPlusDLL.lib
或 在(VC6)"Project->Settings->Link->Object/library"中加入SkinPlusPlusDLL.lib
在工程中加入SkinPlusPlus.h文件。

2).在你的程序中包含頭文件
#include "SkinPlusPlus.h"

3).在程序中加入初始化語(yǔ)句InitInstance()

InitializeSkin(_T("XPCorona.ssk");

注:以上假定,如果不是請(qǐng)更改路徑設(shè)置。

2.卸載Skin++

在程序的卸載函數(shù)中加入ExitInstance()

ExitSkin();

3.更換皮膚

執(zhí)行函數(shù)LoadSkin即可以實(shí)現(xiàn)動(dòng)態(tài)換膚

LoadSkin(_T("XPCorona.ssk");

4.函數(shù)說(shuō)明

InitializeSkin是SKin++的初始化函數(shù),您可以采用如下參數(shù)加載Skin++
InitializeSkin(皮膚文件名);
注:如果皮膚文件名中沒(méi)有路徑則采用當(dāng)前目錄。

LoadSkin(皮膚文件名);
注:如果皮膚文件名中沒(méi)有路徑則采用當(dāng)前目錄。

5.使用分隔條窗體的應(yīng)注意的問(wèn)題

您必須SKINPLUSPLUS_SPLITTER()和SKINPLUSPLUS_INIT_SPLITTER(m_wndSplitter)宏

注:SKINPLUSPLUS_INIT_SPLITTER一般傳入分隔條對(duì)象m_wndSplitter

例如:

......................

SKINPLUSPLUS_SPLITTER()

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
       SKINPLUSPLUS_INIT_SPLITTER(m_wndSplitter);

附:Skin++ 2.10破解版(內(nèi)帶大量漂亮皮膚)下載:http://www./files/348012/SkinMagic.rar.html

 

三、AppFace

如今的開(kāi)發(fā)者越來(lái)越重視美化軟件界面。為了實(shí)現(xiàn)那些漂亮的窗口以得到用戶(hù)的青睞,開(kāi)發(fā)者往往會(huì)通過(guò)internet去尋找很多的界面控件,然后把它們一個(gè)一個(gè)的運(yùn)用在當(dāng)前的工程當(dāng)中。需要用到界面控件的地方越多,編程量就越大,軟件總體的質(zhì)量也就越難控制。

AppFace 軟件皮膚界面包正是為解決這個(gè)問(wèn)題而設(shè)計(jì)的。AppFace 軟件皮膚界面開(kāi)發(fā)包英文名稱(chēng)是 AppFace UI Development Kits,簡(jiǎn)稱(chēng) AUDK ,它提供了一種將美術(shù)設(shè)計(jì)和編程完全分開(kāi)的軟件界面美化的解決方案。它的核心是換膚控件appface.dll,這是一個(gè)Windows 標(biāo)準(zhǔn)動(dòng)態(tài)庫(kù),實(shí)質(zhì)上是一個(gè)界面控件庫(kù)。 換膚控件加載后能夠按預(yù)定義的美化軟件界面方案自動(dòng)對(duì)進(jìn)程內(nèi)的所有Windows控件窗口以及邊框窗口進(jìn)行重繪,從而實(shí)現(xiàn)風(fēng)格各異的軟件界面。使用時(shí)只需先由美工制作好界面資源包(皮膚文件),而編程時(shí)只需執(zhí)行加載和卸載換膚控件的代碼,如果要更改軟件界面,只需更換對(duì)應(yīng)的皮膚文件就行了,極為方便。

具體參考:http://www./chs/product.htm

 

四、WebUI Studio.NET 2008 (web 界面開(kāi)發(fā)包)

WebUI Studio.NET是一套創(chuàng)建ASP.NET 2.0 web應(yīng)用程序不可缺少的控件組合包。它為各種網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā)提供統(tǒng)一標(biāo)準(zhǔn)的控件系統(tǒng),各產(chǎn)品之間形成如"磐巖"般堅(jiān)固的結(jié)構(gòu)以及緊密組合。因此,WebUI Studio.NET?極大的提高了開(kāi)發(fā)人員的工作效率,從而增強(qiáng)整個(gè)企業(yè)的生命力。同時(shí),通過(guò)采用最先進(jìn)的技術(shù)以及創(chuàng)新意識(shí)提高了WEB應(yīng)用程序的價(jià)值,最大程度滿(mǎn)足了客戶(hù)及最終用戶(hù)的需求。

下載地址:http://www./pro_view.asp?id=521

 

五、USkin

USkin是一套用于換膚的sdk。目前還在不斷完善階段。最終目標(biāo)是提供對(duì)個(gè)人免費(fèi)的換膚軟件。
使用方法:
同其他類(lèi)似軟件一樣。使用USkin非常簡(jiǎn)單.
1.調(diào)用USkin_InitUSkin進(jìn)行初始化
2.調(diào)用USkin_LoadUSkin進(jìn)行換膚
3.調(diào)用USkin_ExitUSkin退出

開(kāi)發(fā)包下載:

http://www./software-development_directory/uskin/

http://www./soft/23449.html

使用實(shí)例:http://www./document/viewdoc/?id=1645

 

六、SkinFeature

SkinFeature皮膚界面控件介紹
SkinFeature 完全支持Win9X/NT/2K/XP,UNICODE/ANSI,能夠?qū)δ繕?biāo)進(jìn)程里的所有Widows標(biāo)準(zhǔn)控件,系統(tǒng)菜單,通用對(duì)話(huà)框等實(shí)現(xiàn)換膚。
而且完全支持PNG圖象格式,對(duì)于界面美工來(lái)說(shuō)是一個(gè)非??上驳氖虑?。同時(shí),皮膚文件rss可以設(shè)置密碼,對(duì)于我們保護(hù)自己的皮膚文件,保護(hù)版權(quán)來(lái)說(shuō)是非常有必要的!對(duì)非商業(yè)用途而言,它是完全免費(fèi)的。關(guān)鍵的是SkinFeature的使用非常簡(jiǎn)單,很容易添加到已有的工程中。我使用的是 1.0 ,你也可以到它的網(wǎng)站 http://www.SkinFeature.com 去下載最新版本
SkinFeature 支持三種皮膚加載方式,從磁盤(pán)文件加載,從資源加載,從內(nèi)存加載。下面我就說(shuō)說(shuō)如何加載磁盤(pán)的普通rss皮膚文件:
首先,要確保你下載了SkinFeature 開(kāi)發(fā)包,我們要用到其中的三個(gè)文件: "SkinFeature.h", "SkinFeature.dll" ,"Coolorange.rss"
接著,創(chuàng)建一個(gè) VC 可執(zhí)行文件工程, MDI/SDI/DIALOG/WIN32 類(lèi)型的都可以,我以創(chuàng)建一個(gè)DIALOG 工程 ResSkin 進(jìn)行說(shuō)明 。將"SkinFeature.h" 拷貝到該工程目錄下,"SkinFeature.dll","Coolorange.rss" 拷貝到該工程的輸出目錄下,例如:"debug/"
 
準(zhǔn)備工作全部完成了,現(xiàn)在進(jìn)入正題:
1.ResSkin.cpp 中加入: #include "SkinFeature.h"
2.CResSkinApp::InitInstance() 成員函數(shù)中添加如下代碼
CResSkinApp::InitInstance()
{
      ...
      //只需添加如下一行代碼從文件加載skinfeature 皮膚文件 rss 。其中最后一個(gè)參數(shù)是皮膚文件的密碼
      //如果有的rss皮膚文件是用戶(hù)自己希望得到保護(hù),不讓別人使用的。會(huì)設(shè)置加載密碼
      InitializeSkin(); //初始化skinfeature界面庫(kù),這句話(huà)可加可不加,主要是當(dāng)多線(xiàn)程中換膚需要加。
      LoadSkinFile("..//skin//Coolorange.rss"); //line 1
      CResSkinDlg dlg;
      m_pMainWnd = &dlg;
      int nResponse = dlg.DoModal();
      ...
}
int CResSkinApp::ExitInstance()
{
      //退出skinfeature界面庫(kù),釋放內(nèi)存資源。
      UnLoadSkin();            //line 2
    return CWinApp::ExitInstance();  
}
編譯... 一切搞定 ! 也嘗試過(guò)使用其它的界面開(kāi)發(fā)庫(kù),感覺(jué)SkinFeature是最容易使用的,加載速度最快,穩(wěn)定性也不錯(cuò)。

skinfeature動(dòng)態(tài)界面控件破解版:http://www./htmls/872/110/

 

 

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多