duilib入門教程

2021-10-10 04:39:31 字數 2417 閱讀 3227

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的基礎應用...