1. 开发工具:VC++ DUIEngine:
该工程由DUIEngine创建,没了解过DUIE的同学,可以看前面的DUIE配置文章:点击打开链接
编译DUIE工程时,请选择“全部重新构建”构建所有的工程,以确保所有的更改都能生效。因为当你修改XML文件后,VS不会把其当做更新项,进行重新构建。
2. 制作图像文件,并拷贝至DUIE工程的skin\image文件夹下:
DUIE的皮肤默认图像文件都是PNG类型的,所以尽量不要用bmp格式的,以免有些半透明的效果无法显示。
还有一点是:有些DUIE的控件是有默认皮肤的(如Checkbox的focus_checkbox.png),当你不想用默认皮肤时,请用一张透明的PNG文件,替换掉默认皮肤。不要将其删除,以免默认的控件找不到皮肤文件,而报错。
3. 在index.xml文件中配置图像文件:
声明的图像文件,必须要有一个名字,所以需要在name属性中,设置一个名字,以供后面的皮肤制作使用。
4. 在init.xml文件中声明皮肤的名字。
声明皮肤的名字是在skins节点下完成的:
1. name代表的是皮肤名字。
2. src就是图像的名字,和index.xml声明的图像名字一样。
3. subwidth是指定图像的长度,可以不设置。但如果设置了,那么DUIE将会根据此值,来进行绘图。subwidth的值不能超过实际图像长度,否则会报错。
5. 在init.xml文件中定义皮肤类:
在init.xml文件的style节点下,声明皮肤类class,这个皮肤类,还不是具体的控件类型,而是包括了基本的皮肤信息。我们可以在class中,定义皮肤、字体、还有图像偏移等等属性。具体的xml用法,可以参考DUIEngine的说明文档。
6. 在dlg_main.xml文件中,定义具体的控件:
dlg_main.xml对应的就是CMianDlg类,你可以在这个xml文件中,声明及创建想要的控件类。这里的控件类的CLASS属性,就是引用init.xml文件中的class节点。
而C++代码中可以根据控件的name或者id来获取控件类的HWND句柄。
6. 小结:
这个工程中,我没有写任何的C++代码,而只是用了XML配置,来完成了窗口的生成。DUIE可以通过XML文件,来帮开发者完成大多数的窗体开发,如果遇到特殊的需求,也可以通过插入自己的定义类,来完成控件的制作。
本文工程免费下载链接:http://download.csdn.net/detail/renstarone/7424871
VC++界面编程之--仿Facebook透明登录窗口,布布扣,bubuko.com