天天看點

如何選擇VC界面庫産品?(二)– DSkinLite界面庫介紹

原文位址::http://www.uieasy.com/cn/blog/?p=473

客戶經常來信詢問該如何選擇界面庫産品: 

“你們的産品跟其他同類産品相比有什麼優勢?” 

“你們的DSkinLite界面庫跟DirectUI界面庫有什麼不同,哪個産品更适合我們公司?”

前面的三篇文章分别介紹了:

如何選擇VC界面庫産品(一)– 選擇界面庫産品需考慮的因素

本文主要介紹UIEASY DSkinLite庫界面産品的特點及優勢。

DSkinLite界面庫産品

      DSkinLite 是一款輕量級的C++界面庫,未使用複雜的Hook操作,僅使用替換視窗過程的方式(SubclassWindow)來處理控件界面繪制。使用XML檔案管理GDI資源如顔色,字型,圖檔,并描述界面構成,最大程度的将界面和程式邏輯分離,同時為軟體皮膚更換,換色等提供基礎支援。 

      同時UIEASY首次創造性的将界面構成元素抽象為線條元素,矩形元素,圖檔元素,文本元素,并提供相應規則來使用這些元素“組合” 界面。這極大的提高了界面庫産品的靈活性,使得界面庫産品可以随意構造出多種多樣的控件界面。 

      DSkinlite融合了DirectUI元素并提供多款自繪控件。

    DSkinLite秉承UIEASY界面産品設計理念- 高效,簡單,靈活,穩定。擁有以下顯著特點:

如何選擇VC界面庫産品?(二)– DSkinLite界面庫介紹
 簡單易用

         DSkinLite界面庫API及XML配置文法簡單,開發人員一般可以在2-3天内熟悉使用方法。DSkinLite界面庫API共20個左右,常用API函數應該在5左右。同時DSkinLite采用C++編寫,專為Visual Studio開發者設計,開發者可以很容易的将DSkinLite整合到已有軟體工程中或者迅速開發新的軟體。 

         DSkinLite使用XML配置界面樣式,定義界面資源(字型,顔色,圖檔)等。借助于XML的靈活的文法,可以描述多種多樣的控件界面風格。是以不管您是否有意選擇DSkinLite界面産品,您都可以下載下傳我們的使用試用版,了解DSkinLite界面庫的設計風格,相信會讓您了解一種全新的界面産品設計理念,給您的界面開發帶來啟發。

如何選擇VC界面庫産品?(二)– DSkinLite界面庫介紹
 界面配置靈活

      界面配置靈活。DSkinLite界面庫采用XML管理GDI元素,并獨創了将界面元素抽象為圖檔,矩形,線條,文字等元素。任何一個控件界面均可以由這些元素來組合,使用DSkinLite可以輕松配置各種界面效果。如下圖所示:

如何選擇VC界面庫産品?(二)– DSkinLite界面庫介紹

由此在一個控件界面中,可以靈活的配置界面元素,可以滿足絕大多數界面設計需要。

動态的控制界面元素。同時DSkinLite提供相應的API可以控制這些元素(image,text,rect)的顯示/隐藏,同時修正某些屬性,如image的picfile屬性即更換圖檔,text的content屬性即文本内容。這種界面需求在界面開發中十分常見。如:

如何選擇VC界面庫産品?(二)– DSkinLite界面庫介紹

01

if

( bVoice )

02

{

03

dsSetDrawItemVisible( GetDlgItem( IDC_BUTTON8)->GetSafeHwnd(), 101,101, FALSE, FALSE);

04

dsSetDrawItemVisible( GetDlgItem( IDC_BUTTON8)->GetSafeHwnd(), 100,100, TRUE, TRUE);

05

//Because there are tow calls for dsSetDrawItemVisible,

06

//it only need redraw the window after the last time.

07

bVoice = FALSE;

08

}

09

else

10

{

11

dsSetDrawItemVisible( GetDlgItem( IDC_BUTTON8)->GetSafeHwnd(), 101,101, TRUE, FALSE);

12

dsSetDrawItemVisible( GetDlgItem( IDC_BUTTON8)->GetSafeHwnd(), 100,100, FALSE, TRUE);

13

bVoice = TRUE;

14

}

如何選擇VC界面庫産品?(二)– DSkinLite界面庫介紹
 控件支援全面

    DSkinLite除支援一般控件之外,還完整支援各種控件的内置滾動條。同時還采用可以配置listctrl,listbox,treectrl等控件的item内容的繪制,無需額外編寫繪制代碼。具體請參見:

     Item控件(List control, List Box, Tree Control)繪制(一)–DrawItem配置

      同時針對Win32控件本身的一個局限,DSkinLite中加入了一些自繪的控件,來解決使用标準Win32控件無法解決的界面需求。詳細了解,WidgetTree自繪控件,WidgetTab自繪控件。

      DSkinLite 新特性– 自繪樹形控件(QQ好友清單)

      DSkinLite新特性—WidgetTab

如何選擇VC界面庫産品?(二)– DSkinLite界面庫介紹
高效圖形繪制子產品

    DSkinLite未使用GDI+等圖形庫,使用針對公司開發的圖形庫來繪制界面,圖形庫對界面程式設計優化并擴充;支援各種paintmode(參考DSkinLite 使用技巧(六) – 繪制元素),同時支援png,bmp,gif, jpeg等圖形格式。

如何選擇VC界面庫産品?(二)– DSkinLite界面庫介紹
與其他産品組成界面解決方案

     DSkinLite界面庫周邊産品完善。

     DSkinControl( For MFC ) 是一款MFC擴充控件庫,同時使用DSkinLIte處理界面繪制。了解更多關于DSkinControl 控件庫:

    UIEASY 控件庫DSkinControl ( For MFC) V1.0 釋出

    DSkinControl( For MFC) 新控件 StackWnd

     ekRichEdit控件為一款RichEdit擴充控件,主要對微軟RichEdit控件做擴充,實作顯示圖檔動畫,文本,超連結等,滿足Windows用戶端軟體對富文本控件的需求。同時我們針對IM等聊天視窗中的需求,封裝相應的類來支援;可以滿足IM軟體對RichEdit的基本需求。了解更多關于ekRichEdit控件:

     RichEdit擴充控件–ekRichEdit簡介

     RichEdit擴充控件– ekRichEdit API 說明

    DSkinLite界面庫與這些控件産品完全相容,可以同時在軟體産品中使用。

如何選擇VC界面庫産品?(二)– DSkinLite界面庫介紹
産品穩定

    DSkinLite界面庫産品自2008年推出以來,先後經曆三次大的版本釋出,并持續更新至今,最新版本為V3.7.5.3。未來還将有更多的新特性加入DSkinLite。

     DSkinLite産品從推出以來,受到市場廣泛好評。企業客戶遍及中國,南韓,日本,美國,印度,歐洲。歡迎您與我們聯系,索取成功案例資訊。

DSkinLite詳細功能特性

界面庫統一特性:

功能特性 較長的描述
界面色調動态調整 支援界面整體換色調,同時可自由控制圖檔,文字,控件等是否換色。可通過HSL和color兩種方式來更換色調。
多種皮膚加載方式 支援從檔案夾,壓縮檔案,VC資源三種方式加載皮膚
全面支援滾動條 除支援list box, edit,rich edit, list control, tree control等滾動條外,也支援windows内置的滾動條。
皮膚檔案打包 可使用我們提供的SkinBuilder工具,将皮膚檔案整體打包。
高速圖檔解析庫

支援多種圖檔格式

支援bitmap,png帶透明通道,gif,jpeg等格式。

采用公司研發的圖檔解析庫,針對界面程式設計做了諸多優化和擴充。

支援多個開發平台 支援MFC,ATL,WTL,win32等多個開發環境,同時支援VC6-VS 2010 多個平台。
靜态庫 可提供VS 2003 – 2010 各個平台下的靜态庫版本
Unicode 支援Unicode/多位元組開發環境
支援控件自繪 提供控件背景自繪功能,使用者可以DSkinLite繪制控件前或者繪制控件後,根據提供的接口繪制控件界面。同時支援list control,listbox,tree control等控件自繪功能。
動态控制界面顯示效果 可以根據程式邏輯動态控制控件界面的顯示效果,如更換控件背景,控件文本等。
支援動畫顯示 支援動畫顯示,并通過API控制動畫顯示。支援gif格式,和多張png圖檔格式組成的動畫。
自定義資料支援 可以在XML中配置控件的自定義的屬性。例如:控件大小,行高以及每行的顯示内容等,這樣可以大大的友善換膚以後的整體的效果。
動态加載xml配置檔案 完全支援插件式開發。在插件式界面開發中,某些界面可能是後來通過更新等方式添加的功能子產品,DSkinLite可以動态加載這些插件界面的xml配置檔案。
支援控件、子視窗透明 DSkinLite高效支援大部分控件,子視窗透明,以及多層視窗透明。
ToolTips支援 可以自由在XML定義控件tooltips提示語,也可以通過函數dsSetToolTips動态設定。
标題欄添加控件 支援在視窗标題欄區域,添加控件。
支援美化的MessageBox DSkinLite通過API dsMessageBox支援MessageBox的美化,您可以完全配置MessageBox視窗背景,提示icon圖示等。

控件類型支援

功能特性 較長的描述
支援标準控件

支援static,button,checkbox,radiobox,edit,listbox,list control, tree control

combobox, header control, group box, slider,spin, tab control, progress,toolbar control.

menu, richedit,datetime control.

支援Split button Split button,是指一個button有兩部分,左右均可響應事件。
完全支援Menu的繪制 支援Menu背景,item繪制,同時支援設定item圖示ico。
支援Item繪制 支援根據XML定義list control,tree control, list box等item的風格,并繪制item。同時支援定義eventitem響應事件。
dsTreeControl自繪控件 dsTreeControl(WidgetTree)控件是一款類似Tree control的樹形控件,主要支援一些标準樹形控件不能完成的功能,如設定不同item的不同高度。
dsTabControl自繪控件 dsTabControl(WidgetTab)控件是一款類似Tab control的樹形控件,主要是為了解決标準Tab控件的限制,滿足更多需求。

下一篇文章:

如何選擇VC界面庫産品(三)–- DirectUI界面庫産品