duilib是乙個開源 的directui 介面庫,使用xml來描述介面風格,介面布局,將介面與邏輯分離,能夠快速開發美觀的介面。
2.2編譯#
開啟根目錄的duilib.sln,github上的工程是vs2013的,使用vs2017開啟時,會提示公升級工程,點公升級即可。如果沒有公升級成功,在工程配置中修改如下選項,選擇win10的sdk和vs2017的工具集。
按照如下要求修改檔案編碼,解決由於編碼格式的問題會導致vs2017下編碼失敗的問題。
根據實際需求,選擇對應的工程配置,靜態庫或者動態庫,unicode或者多位元組等等。
選擇好工程配置之後,編譯工程duilib即可。
注意:生成duilib靜態庫時,需要新增預編譯巨集uilib_static
3.1庫鏈結與標頭檔案包含#
使用duilib介面庫,可以分為動態鏈結和靜態鏈結兩種方式。
1.靜態鏈結
工程配置中新增對duilib.lib
靜態庫的鏈結,並且新增預定義巨集uilib_static
。
2.動態鏈結
將生成的duilib.dll
拷貝到輸出檔案的同級目錄下,同時新增對導入庫duilib.lib
的靜態鏈結。
3.標頭檔案
將如下標記的檔案和資料夾拷貝,使用時包含uilib.h檔案即可。
3.2**中的使用#
#include "..\duilib\uilib.h"
#ifdef _debug
# ifdef _unicode
# pragma comment(lib, "duilib_ud.lib")
# else
# pragma comment(lib, "duilib_d.lib")
# endif
#else
# ifdef _unicode
# pragma comment(lib, "duilib_u.lib")
# else
# pragma comment(lib, "duilib.lib")
# endif
#endif
using namespace duilib;
class testframe : public windowimplbase
~testframe(){}
virtual cduistring getskinfolder()
virtual cduistring getskinfile()
virtual lpctstr getwindowclassname(void) const
virtual lresult onclose(uint /*umsg*/, wparam /*wparam*/, lparam /*lparam*/, bool& bhandled)
virtual void notify(tnotifyui& msg)}}
private:
int apientry winmain(hinstance hinstance, hinstance /*hprevinstance*/, lpstr /*lpcmdline*/, int ncmdshow)
對應的xml布局檔案:
<?xml version="1.0" encoding="utf-8"?>
執行結果:
關於duiliib的詳細用法,可以參考原始碼工程中的demo,基本列舉了所有控制項的用法,包括各種布局情況。也可以參考部落格:
duilib布局詳解
duilib屬性列表
DuiLib入門簡明教程
2013 duilib入門教程彙總 2013 duilib入門簡明教程 前言 1 2013 duilib入門簡明教程 vs環境配置 2 2013 duilib入門簡明教程 第乙個程式 hello world 3 2013 duilib入門簡明教程 響應按鈕事件 4 2013 duilib入門簡明教程...
CSS入門教程
css是 cascading style sheets 的簡稱,中文翻譯為 串接樣式表 也有人翻譯為 樣式表 css用以作為網頁的排版和風格設計,在web標準建站中,對css的熟悉和使用是相當重要的乙個內容。css的作用是彌補html的不足,讓網頁的設計更為靈活。這個文章只是為您介紹css的基礎應用...
CSS入門教程
css是 cascading style sheets 的簡稱,中文翻譯為 串接樣式表 也有人翻譯為 樣式表 css用以作為網頁的排版和風格設計,在web標準建站中,對css的熟悉和使用是相當重要的乙個內容。css的作用是彌補html的不足,讓網頁的設計更為靈活。這個文章只是為您介紹css的基礎應用...