SkinMagic2.0b1試用

來源:互聯網
上載者:User

 VC程式的介面美化是個大難題,雖然windows有重繪方法,但對於我這種沒有美術細胞的人,圖片都配不好,每個按鈕有焦點、正常、按下、不可用4種狀態,另外還有n多種控制項,加上表單。。。最最可怕的是全部都要插入代碼處理,想著都恐怖,每個寫個程式的人都應該強烈反對。

SkinMagic暫時緩解了我的需求,簡單的使用方法,尚可的介面,不太高的資源消耗,挺不錯的。

我下載的是SkinMagic2.0b1,還有破解檔案:http://hi.baidu.com/sdqdshixin/blog/item/ac903ad11527f73f9b5027ec.html

 

這個網頁中還有使用方法,介紹得尚可,我結合自己的簡單使用再整理下使用方法。

 

下載到有兩個壓縮包,一個是試用版安裝檔案,安裝,裡面skin檔案夾有幾種可用的皮膚;include目錄有SkinMagicLib.h,我把它複製到 vc 的預設標頭檔目錄下,如果不嫌麻煩,也可不複製,寫程式時加上路徑或在vc選項中設定尋找目錄;lib目錄下有lib,不用管,是試用版,不用它們;SkinMagicBuilder目錄下是皮膚編輯器,可以查看和修改皮膚,例如corona.smf這個皮膚的文字框預設文字顏色是綠色的,我覺得不爽,又不想在程式中修改,直接在編輯器中把顏色改回黑色。

另一個壓縮包是一個程式碼,很多東西,這裡只需要SkinMagic.dll,SkinMagic.lib,細看,還有SkinMagicLib.h,隨便了,把SkinMagic.lib複製到vc的預設lib下,也是為了省心。SkinMagic.dll是要複製到產生的vc程式目錄下的,exe要用到它。

 

幾乎每個vc工程都有stdafx.h這個檔案,在其中插入

#include "SkinMagicLib.h"
#pragma comment(lib,"SkinMagic.lib")

其實,確保使用到SkinMagic庫函數的cpp包含SkinMagicLib.h就行,連結到SkinMagic.lib就行。

 

真正使用要用下面代碼:

 

// 寫在程式入口處,其實在使用之前幹好這件事就行,但明顯每個Dialog開啟時都載入一次皮膚檔案是不明智的

InitSkinMagicLib(hInstance,NULL,NULL,NULL); //初始化,hInstance 是程式的執行個體控制代碼,

                                                                                //GetModuleHandle(NULL)可得到當前程式的執行個體控制代碼

LoadSkinFile("corona.smf"); //載入皮膚檔案

 

程式退出時執行:

ExitSkinMagicLib(); //卸載該庫

 

上面只是做了一些雜活,皮膚應用到表單上還要一點代碼,分為兩類,Dialog和Window。

Dialog最方便,一句 SetDialogSkin("Dialog"); 搞定,這句後的整個程式彈出的對話方塊都具有該皮膚特徵,顯然,在上面載入皮膚後立即使用這句是很好的。“Dialog”是皮膚檔案中對話方塊皮膚的名稱,用編輯器開啟可以看到。另外還有但為一個Dialog設定的函數 SetSingleDialogSkin( m_hWnd, "Dialog" ) );,請參見http://www.pconline.com.cn/pcedu/empolder/gj/vc/0404/358979.html

 

Window就有些不同了,一定要表單控制代碼,SetWindowSkin(wndMain.m_hWnd,"MainFrame");,同樣“MainFrame”也是皮膚檔案定義的表單皮膚名字。所以,表單就要一個一個的設定皮膚,在表單建立之後,這樣hWnd才是有效,使用上面那句,再ShowWindow,UpdateWindow。

SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();

 

這樣就可以看到漂亮的皮膚了,至於程式中隨意更改皮膚,重新載入皮膚檔案,設定一道就行,至於代碼怎麼寫,請自行考慮。

 

想要把皮膚檔案放到資源中,見

http://hi.baidu.com/sdqdshixin/blog/item/ac903ad11527f73f9b5027ec.html

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.