利用介面開發包美化介面
一、skinmagic
skinmagic toolkit是一套功能強大的介面解決方案庫,我們提倡介面和業務邏輯相分離,將程式設計師從煩瑣的介面設計中徹底解放出來,將精力集中在業務功能的實現上,提高產品的開發效率。網路上的skinmagic版本繁多,而且試用版,破解版並存,各版本之間支援的**檔案也不盡相同,因此經常有人在網上詢問為何新增了skinmagic沒有效果甚至導致程式崩潰之類的問題。這裡有乙個可用的破解版本(包含vc6使用的庫和支援的常用**檔案)skinmagictoolkitv2.2.31
1:檔案說明
skinmagiclib.h 必須的標頭檔案,請新增到工程中。
skinmagic.lib + skinmagic.dll 動態鏈結庫配套使用
編譯時需要在工程中新增skinmagic.dll,程式執行時需要skinmagic.dll
以下版本的編譯出來的程式執行時不再依賴skinmagic.dll
skinmagiclibmd6.lib 靜態鏈結庫,用於vc6的release版編譯
skinmagiclibmt6.lib 靜態鏈結庫,用於vc6的debug版編譯
2:使用步驟
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
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();
二、skin++
作為勇進軟體的旗幟性產品skin++ for vc版,具有簡單易用、嵌入系統方便、執行穩定、相容性強等特點。提供了所有標準控制項的skin解決方案,可以完美地設計程式每部分的介面細節,完全做到了所見即所得的介面效果,滿足了目前所有的visual c++應用程式介面開發需求。本產品徹底改變了visual c++開發介面難的問題,使用本產品可以對您已有的系統進行方便快捷的介面改造,也可以在系統開發的初期,極大地提高系統開發的進度,並得到滿意的介面效果。
skin++使用方法:
1.載入skin++
0).將skinplusplusdll.lib,skinplusplus.h,xpcorona.ssk都複製到當前目錄
或 在(vc6)"project->settings->link->object/library"中加入skinplusplusdll.lib
在工程中加入skinplusplus.h檔案。
2).在你的程式中包含標頭檔案
#include "skinplusplus.h"
3).在程式中加入初始化語句initinstance()
initializeskin(_t("xpcorona.ssk");
注:以上假定,如果不是請更改路徑設定。
2.解除安裝skin++
在程式的解除安裝函式中加入exitinstance()
exitskin();
3.更換**
執行函式loadskin即可以實現動態換膚
loadskin(_t("xpcorona.ssk");
4.函式說明
initializeskin是skin++的初始化函式,您可以採用如下引數載入skin++
initializeskin(**檔名);
注:如果**檔名中沒有路徑則採用當前目錄。
loadskin(**檔名);
注:如果**檔名中沒有路徑則採用當前目錄。
5.使用分隔條窗體的應注意的問題
您必須skinplusplus_splitter()和skinplusplus_init_splitter(m_wndsplitter)巨集
注:skinplusplus_init_splitter一般傳入分隔條物件m_wndsplitter
例如:......................
skinplusplus_splitter()
int cmainframe::oncreate(lpcreatestruct lpcreatestruct)
編譯... 一切搞定 ! 也嘗試過使用其它的介面開發庫,感覺skinfeature是最容易使用的,載入速度最快,穩定性也不錯。
skinfeature動態介面控制項破解版:http://www.winu.cn/htmls/872/110/
總結面向介面程式設計
此處的 介面 與程式語言中的 inte ce 定義稍有不同,面向介面程式設計 中的介面是一種思想層面的用於實現多型性 提高軟體靈活性和可維護性的架構部件,而具體語言中的 介面 是將這種思想中的部件具體實施到 裡的手段。優點 1.可擴充套件性良好.例子 public inte ce hardware ...
PyQt5程式設計 5 啟動介面
pyqt中的qsplashscreen類提供了在程式啟動過程中顯示的啟動畫面的功能當執行程式時,在顯示屏的 出現乙個啟動畫面,經過一段時間,應用程式完成初始化工作後,啟動畫面隱去,出現程式的主視窗介面的功能。建構函式 qsplashscreen qpixmap pixmap qt.windowfla...
專案總結(按照介面程式設計)
原來一直做c的專案開發,系統還算穩定,做了差不多3年,核心的 都重寫了2遍以上。去年開始做新專案,為了提高開發效率,決定上c c 就是好呀,成熟的庫一大堆,於是選定了boost ace作為系統的主要支撐庫。boost還不錯,塊分的很好,團隊學習起來很容易。ace就有點麻煩了,封裝層還算易學,框架層就...