1.安装Kanzi。

2.使用Kanzi studio创建工程。

Kanzi创建的工程会包含以下目录结构:

其中,

Tool_project文件夹中存放的是设计师设计的工程,包含kanzi UI的工程的所有文件。

Application文件夹则为代码的工程文件夹。该文件夹下的bin文件夹存放设计师导出的kzb文件,src文件夹存放编写的代码,config里面存放对应的vs、vc、eclipse工程文件。

UI设计师和软件工程师通过bin目录下的kzb资源文件联系起来。UI设计师通过kanzi studio设计工具导出kzb资源文件到该目录,而软件工程师使用engine读取该kzb文件创建界面,监听点击事件,传递数据,实现具体功能。

【设计师设计部分】可以通过以下视频教程进行学习。

http://v.ku6.com/show/eHuNhYr8nd4S7gY7jpwahg...html?st=3_1_2

http://v.17173.com/so-index.html?key=kanzi

http://v.youku.com/v_show/id_XNjU5MTI2ODE2.html?from=y1.7-1.2

【软件工程师编程部分】

1.对于2.8.x版本:

刚创建的Kanzi工程有两个函数,其中kzApplicationConfigure为整个程序的入口,相当于main函数(kanzi把main函数封装在库中了,只提供kzApplicationConfigure出来,kzApplicationConfigure会在创建窗口之前回调)。

如下:

 1 /** 2  * A typical application configuration function. 3  */  4 KZ_CALLBACK void kzApplicationConfigure(const struct KzaSystemProperties* systemPropert5 ies, struct KzaApplicationProperties* configuration) 6 { 7     /* Memory reserved for the application. */  8     configuration->memoryPoolSize = 20 * 1024 * 1024;     //设置使用内存的大小,默认20Mb9     configuration->binaryName = "binaries.cfg";     //设置读取kzb的配置文件
10
11     /* Platform specific configuration parameters. */
12 #if defined WIN32 || defined __linux__
13     configuration->windowProperties.style = KZS_WINDOW_STYLE_DEFAULT;
14     configuration->windowProperties.width = 800;
15     configuration->windowProperties.height = 480;
16 #endif
17
18     /* List of available entry points implemented. Implementation is optional. */
19     /* Application lifetime. */
20     configuration->onStartup = startup;
21     configuration->onProjectLoaded = projectLoaded;
22     configuration->onShutdown = shutdown;
23
24     /* Application events. */
25     configuration->onApplicationEvent = applicationEventHandler;
26     configuration->onWindowEvent = windowEventHandler;
27
28     /* Input events. */
29     configuration->onKeyInputEvent = keyInputEventHandler;
30     configuration->onPointerInputEvent = pointerInputEventHandler;
31
32     /* Render cycle. */
33     configuration->onPreRender = preRender;
34     configuration->onPostRender = postRender;
35     configuration->onUpdate = update;
36 }

kzApplicationConfigure函数中可做app的配置,设置内存池大小、窗口大小、窗口类型等,

另外就是在里面注册回调函数,如

configuration->onPostRender = postRender;
为注册每一帧渲染后的回调函数。

2.对于3.2版本则改成了c++的风格,如下:

 1 #include <kanzi/kanzi.hpp>2 3 class NApplicaiton : public ExampleApplication4 {5 protected:6     virtual void onConfigure(ApplicationProperties& configuration) KZ_OVERRIDE;7 8     virtual void onProjectLoaded() KZ_OVERRIDE;9
10     virtual void onShutdown() KZ_OVERRIDE;
11
12     virtual void onKeyInputEvent(const KzsInputEventKey* inputData) KZ_OVERRIDE;
13
14 private:
15     NApplicaiton();
16     ~NApplicaiton();
17
18 };
19
20 Application* createApplication()
21 {
22     return new NApplicaiton();
23 }

之前在2.8.x版本中的 注册回调函数的方式在3.2版本换成了 重写ExampleApplication的虚函数,其作用还是一样的。同样onProjectLoaded会在资源加载完成后背调用。

如您需要更多的信息,欢迎一起咨询,一起学习

温馨提示:微信扫码关注我们:跟着数理化走天下

获得更多的信息哦,一起交流,一起成长哦:微信号:跟着数理化走天下,纯属个人的交流,无盈利目的

KANZI入门第一篇之kanzi详解,教你轻松学kanzi相关推荐

  1. 入木三分学网络第一篇--VRRP协议详解-----(1)

    原帖:http://blog.chinaunix.net/uid-11654074-id-2857384.html 目录 入木三分学网络第一篇--VRRP协议详解 1. VRRP产生背景及应用环境 1 ...

  2. 入木三分学网络第一篇--VRRP协议详解-----(2)

    原帖:http://blog.chinaunix.net/uid-11654074-id-2857385.html 2.4 VRRP通告报文的发送与接收处理流程 2.4.1 当收到一个VRRP通告报文 ...

  3. 小米电视机html,小米电视机功能详解 教你轻松使用

    小米智能电视怎么用法 小米电视九大操作功能汇总,小米电视有哪些操作功能?小米电视支持HDR解码:电视也能轻松管理家中智能设备:语音体感蓝牙遥控新玩法:小米蓝牙耳机完美打造私人视听新体验:小米电视在线商 ...

  4. MySQL数据库,从入门到精通:第十四篇——MySQL视图详解

    MySQL数据库,从入门到精通:第十四篇--MySQL视图详解 第 14 篇_视图 1. 常见的数据库对象 2. 视图概述 2. 1 为什么使用视图? 2. 2 视图的理解 3. 创建视图 3. 1 ...

  5. MySQL数据库,从入门到精通:第十二篇——MySQL数据类型详解

    MySQL数据库,从入门到精通:第十二篇--MySQL数据类型详解 第 12 章_MySQL数据类型精讲 1. MySQL中的数据类型 2. 整数类型 2. 1 类型介绍 2. 2 可选属性 2. 2 ...

  6. LSTM入门必读:从入门基础到工作方式详解 By 机器之心2017年7月24日 12:57 长短期记忆(LSTM)是一种非常重要的神经网络技术,其在语音识别和自然语言处理等许多领域都得到了广泛的应用

    LSTM入门必读:从入门基础到工作方式详解 By 机器之心2017年7月24日 12:57 长短期记忆(LSTM)是一种非常重要的神经网络技术,其在语音识别和自然语言处理等许多领域都得到了广泛的应用. ...

  7. 【备战春招/秋招系列】美团Java面经总结进阶篇 (附详解答案)

    <!-- MarkdownTOC --> 一 消息队列MQ的套路 1.1 介绍一下消息队列MQ的应用场景/使用消息队列的好处 ①.通过异步处理提高系统性能 ②.降低系统耦合性 1.2 那么 ...

  8. Django新手入门(五)——Models详解

    Django新手入门(五)--Models详解 数据库 ORM Django中的ORM Django中的Models 定义models.py中的类 常用数据字段 常用设置选项 常用函数以及修饰词 其他 ...

  9. 离线强化学习(Offline RL)系列3: (算法篇) Onestep 算法详解与实现

    [更新记录] 论文信息: David Brandfonbrener, William F. Whitney, Rajesh Ranganath, Joan Bruna: "Offline R ...

最新文章

  1. DM368开发 --IPNC 设置过程
  2. kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)
  3. Effective JavaScript Item 33 让构造函数不再依赖newkeyword
  4. java实现字符逆序输出
  5. python list删除元素速度慢_python list(python list删除元素是要注意的坑点)
  6. 存储过程中while循环
  7. stm的小型开源gui介绍
  8. 最大弹窗_你不在意的小弹窗,为什么总是出现问题?
  9. linux脚本课程设计通讯录,Linux简单电子通讯录源码
  10. 微信小程序开发者工具 无法加载以下来源的扩展程序 问题解决
  11. 单工,半双工和和全双工通讯的概念
  12. Tracup|远程办公,为什么会让管理者抓狂?
  13. 浅谈JdbcDaoSupport
  14. 百度也能直播带货!12小时——“慢行”才能持久
  15. 量子计算到底是个什么鬼?
  16. 加冕爱情的八枚梦想戒指
  17. 5th-Generation Mobile Communication Technology(一)
  18. 红领巾小创客机器人活动计划_环市西路小学:红领巾小创客社团活动总结
  19. 为什么公司都严格要求员工薪资保密?
  20. JDK1.8下载、安装和环境变量配置教程(win7和win10分别介绍)

热门文章

  1. 57期性能测试_0621
  2. python编程查看gpu显存使用
  3. 这段时间做的简单dp题目(部分)
  4. 一文搞懂「微信支付 Api-v3」接口规则所有知识点
  5. 输入两个正整数m和n,求出[m,n]区间的所有素数。
  6. LA 7456 Least Crucial Node
  7. 取消改写模式(python)
  8. 纸壳CMS的插件加载机制
  9. stata输出四分位、中位数的命令是什么?
  10. esp8266之红外报警