程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 第一章 DuiEngine簡介與配置

第一章 DuiEngine簡介與配置

編輯:關於C語言

一、前言

Alterto一個畢業不到兩年,一個三流本科院校畢業的菜鳥,酷愛編程。眾多語言中唯獨對c/c++情有獨鐘。最初接觸的就是windows程序設計,一直以做出很炫的界面為目標,然後學習了MFC,使用windows標准控件做界面,此時發現Windows所提供的標准控件根本無法做出我想要的界面,於是開始學習windows標准控件的自繪,經過一段時間努力,跟隨小金魚老師學習自繪,自繪按鈕,TAB,組合框等windows標准控件基本可以實現我所想要的界面。但是在學習自繪的過程中,也發現了標准控件自繪中存在的很多不足:

 

 

首先:普通的控件自繪制仍然是在一個新建的窗口上進行,也就是說所繪制出來的界面中,存在多個子窗口,這樣一旦處理不當很容易造成界面閃爍,解決方法是(使用雙緩沖,WS_CLIPCHILDREN,NULL背景畫刷)。

其次:傳統界面很難實現一些炫酷效果,例如如果需要做類似於QQ一樣半透明背景效果的界面(我的理解:用一張半透明的PNG圖片作為窗口的背景)需要設置層級窗體,但此時窗口上的子控件將無法被現實出來,原因在於普通窗口的繪制是在OnPaint函數中進行,一旦設置層級窗體,其界面繪制工作將搬移到UpdateLayeredWindow函數當中。

後來接觸Dui,開始嘗試使用網上大牛們所寫的界面庫,嘗試尋找一個適合自己的界面庫。但是這並非易事,主要原因在於:網絡上優秀的dui界面庫大部分不開源,而且價格昂貴,開源的界面庫很多卻有做的不完善。但是在開源界面庫下仍然存在著不少精品,這在天朝體制下實屬不易。

當屬Duilib、與DuiEngine,但個人感覺還是DuiEngine要好一點(在win7下不停伸縮用duilib所寫的界面感覺還是會出現黑影,再者duilib的作者基本已經不為其做更新了【大概是被天朝

體制所傷,無奈啊】)。

那Alterto為DuiEngine寫教程的初衷又是為何?

首先,受Alberl的啟發,相信很多人都看過Alberl為Duilib寫得教程,個人感覺寫的太好了,在當時就連我這樣的菜鳥也看懂了(同時也感歎,同樣是畢業一年多的人,差距怎麼這麼大那0.0,

咳!要走的路還有很長啊。)。再者,DuiEngine現在幾乎也沒有一份像樣的教程,作者平時也比較忙根本也沒時間來做這些東西,這麼優秀界面庫卻沒有一份像樣的教程感覺太可惜了,於是

便萌發了為其整理教程的念頭,同時也希望自己在寫教程的同時能更好的掌握DuiEngine。

還是那句話,由於本人還處於菜鳥階段,其中難免有錯誤,還請各位大牛看到後能幫我指出,更希望各位大牛不要噴我,這樣我才有動力將這份教程一直寫下去。好了廢話不多說轉入正題。

 

 

二、DuiEngine介紹

 

一個新興的開源界面,基於金山的bkwin代碼,經過近2年的完善,核心框架部分亦經歷多次大的重構,目前應該說90%以上的基因都是新的。

主要特點(相對於bkwin):

1、框架更加完整,一般的界面都不需要依賴真實子窗口(原realwnd),當然也支持realwnd。

2、不依賴於WTL,可以在win32及MFC裡使用了。

3、更多復雜控件實現:如treectrl等。

4、支持使用UpdateLayeredWindow實現異形窗口,只需要修改一個XML屬性。

5、效率更高,所有繪圖操作都在一個內存位圖上進行,避免了大量的位圖拷貝操作。

6、結構更清楚。

口說無憑,DuiEngine到底效果如何那,請看下面Demo

image

image

image

image

image

image

 

毋庸置疑,效果簡直太棒了!!小伙伴們是否被驚呆了。而且絕無任何界面閃爍狀況。

 

 

三、DuiEngine配置:

1.工欲善其事,必先利其器,這裡建議大家選擇vs2008作為IDE,如何安裝就不說了

2.下載DuiEngine,DuiEngine的SVN:http://code.taobao.org/svn/duiengine/trunk,大家可以安裝一個免費開源客戶端TortoiseSVN

下載地址與安裝方法這裡不做過多敘述。下載完後,找一個你想要存放DuiEngine工程的目錄下,點擊右鍵選擇SVN Checkout,

image

填寫信息後點擊OK

image

下載完後如下:

image

3.進行相關配置,DuiEngine的作者果然是活雷鋒,已經幫我寫好了一個開發環境配置工具,運行duiengine\wizard目錄下

的wizard.setup.exe進行配置,配置過後最好重啟一次電腦,可以打開VS2008命令提示,輸入SET,查看環境變量是否已經被設置。

image

4.編譯DuiEngine內核,打開DUIEngine的解決方案

image

 

選擇菜單“生成”--》“批生成”,因為我們通常編譯的都是win32應用程序,所以這裡我們把X64平台全部去掉,因為Alterto只學過MFC,WTL並沒有接觸過,

所以這裡我將Debug_ATL也去掉(除非你安裝了WTL否則將提示無法打開包括文件:“atlapp.h”: No such file or directory”),因為我們只需要用到,

Release和Debug兩個版本的動態鏈接庫,所以只生成下面兩項即可。

image

編譯大概需要幾分鐘的時間,編譯完成後在下面目錄下生成debug和release版本的動態庫和靜態鏈接庫

image

 

四、建立第一個依賴DuiEngine庫生成的程序

在不熟悉的情況下建議將工程放到與duiengine同級的目錄,如果前面配置都正確,此時在模板下會有一個DuiEngineWizard模板

image

image

 

然後將我們生成DUIEngine_d.dll和DUIEngine.dll文件分別拷貝到工程目錄文件下,Ctrl+F5。哈哈!見證奇跡的時候到了

image

不用添加任何代碼我們就生成了一個帶皮膚的Dialog。

好了!DUIEngine的配置就講到這裡,Alterto要去休息了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved