在使用DuiLib的时候,一种是使用他的DLL库(或者lib库)的方式,一种是直接使用源代码。我偏向于使用后者,这样在发布出去的程序中,就会尽量少一些库文件的烦恼。我们下载的DuiLib的源码中,包括测试程序都是使用dll的形式。
使用源代码时,直接把下载的DuiLib里的源码文件添加到自己的工程中:
将红框里的文件夹和文件导入到自己的工程中,如下:
但在编译的时候,会有几个错误:
(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”。
点击确定:
然后右键点击"XML", 点击“导入(M)...”,选择需要的XML文件
点击确定,再把ID修改为自己想要的
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