DirectUI开源库 - DuiLib 的使用

在使用DuiLib的时候,一种是使用他的DLL库(或者lib库)的方式,一种是直接使用源代码。我偏向于使用后者,这样在发布出去的程序中,就会尽量少一些库文件的烦恼。我们下载的DuiLib的源码中,包括测试程序都是使用dll的形式。

    


使用源代码时,直接把下载的DuiLib里的源码文件添加到自己的工程中:

DirectUI开源库 - DuiLib 的使用_第1张图片

红框里的文件夹和文件导入到自己的工程中,如下:

DirectUI开源库 - DuiLib 的使用_第2张图片


但在编译的时候,会有几个错误:

(1) stb_image.c XUnzio.cpp这两个文件的预编译头问题。取消使用预编译文件即可。

(2)  error C2371: “IDispatchEx”: 重定义 问题。

UIFlash.h文件中

#import "..\Utils/Flash11.tlb" raw_interfaces_only, named_guids 

改为:

#import "..\Utils/Flash11.tlb" raw_interfaces_only, named_guids, rename("IDispatchEx","IMyDispatchEx")


参考: http://blog.163.com/tijijun@126/blog/static/6820974520141201844104/


一、DUILIB显示流程

DUILIB显示的一个基本流程,如下图

     


在Duilib中,CWindowWnd这个类代表了图中 “CWndClass”。

所以我们需要做的是:

1)生成一个XML。

2)实现一个CWindowWnd对象。

3)加载XML。

4)显示窗口。

但是编写的时候,CWindowWnd已经帮我们做了许多工作,我们只需要指定XML路径,它就能够帮助我们自动加载,非常方便。


二、XML文件


1、创建XML文件

创建XML文件,一种是,参考sample里的xml文件,进行修改;还有一种比较直观的方法,那就是用DuiDesigner 来设计xml界面。

2、使用XML文件

在使用XML文件时,一种是和exe文件一起打包,发布。代码中使用方式如下:

包括xml文件中使用的图片资源,也必须放在exe目录下,使用时直接引用名字。


 这种方式对开源项目倒没什么,但是对非开源的项目,就不太适合。我既不想公开xml文件,也不想公开图片资源。这时就可以将这些文件作为资源,添加到rc文件中。

1) 添加XML文件。

右键点击 xxxx.rc,弹出的对话框中点击“自定义(C)...”,资源类型中输入“XML”。

DirectUI开源库 - DuiLib 的使用_第3张图片


点击确定:


然后右键点击"XML", 点击“导入(M)...”,选择需要的XML文件


点击确定,再把ID修改为自己想要的

DirectUI开源库 - DuiLib 的使用_第4张图片

2) 添加PNG等资源文件。

方法跟上面类似,把需要的PNG文件导入


3) 使用

使用时,方式就跟上面有些区别。

使用一个图像时,用两个参数,一个是res,一个是restype。res使用rc文件中的ID,restype就是我们自定义添加的资源类型。


三、窗口类


参考:

1. http://www.cnblogs.com/lin1270/p/4106944.html

2. duilib下载地址: http://code.google.com/p/duilib/downloads/list

你可能感兴趣的:(DirectUI开源库 - DuiLib 的使用)