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会在创建窗口之前回调)。

如下:

 /**
* A typical application configuration function.
*/
KZ_CALLBACK void kzApplicationConfigure(const struct KzaSystemProperties* systemPropert
ies, struct KzaApplicationProperties* configuration)
{
/* Memory reserved for the application. */
configuration->memoryPoolSize = * * ; //设置使用内存的大小,默认20Mb
configuration->binaryName = "binaries.cfg"; //设置读取kzb的配置文件 /* Platform specific configuration parameters. */
#if defined WIN32 || defined __linux__
configuration->windowProperties.style = KZS_WINDOW_STYLE_DEFAULT;
configuration->windowProperties.width = ;
configuration->windowProperties.height = ;
#endif /* List of available entry points implemented. Implementation is optional. */
/* Application lifetime. */
configuration->onStartup = startup;
configuration->onProjectLoaded = projectLoaded;
configuration->onShutdown = shutdown; /* Application events. */
configuration->onApplicationEvent = applicationEventHandler;
configuration->onWindowEvent = windowEventHandler; /* Input events. */
configuration->onKeyInputEvent = keyInputEventHandler;
configuration->onPointerInputEvent = pointerInputEventHandler; /* Render cycle. */
configuration->onPreRender = preRender;
configuration->onPostRender = postRender;
configuration->onUpdate = update;
}

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

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

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

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

 #include <kanzi/kanzi.hpp>

 class NApplicaiton : public ExampleApplication
{
protected:
virtual void onConfigure(ApplicationProperties& configuration) KZ_OVERRIDE; virtual void onProjectLoaded() KZ_OVERRIDE; virtual void onShutdown() KZ_OVERRIDE; virtual void onKeyInputEvent(const KzsInputEventKey* inputData) KZ_OVERRIDE; private:
NApplicaiton();
~NApplicaiton(); }; Application* createApplication()
{
return new NApplicaiton();
}

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


Kanzi入门的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  3. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  4. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  5. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  6. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  7. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  8. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  9. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

随机推荐

  1. IOS第18天(6,CAKeyframeAnimation关键帧动画)

    ******* #import "HMViewController.h" @interface HMViewController () @property (weak, nonat ...

  2. IOS第十天(1:QQ好友列表 ,自定义的headview,代理 ,通知 ,black的使用)

    *****HMViewController.m #import "HMViewController.h" #import "HMFriendsGroupModel.h&q ...

  3. IOS第七天(4:UiTableView 数据的显示优化重复实例和tableFooterView和tableHeaderView)

    //加上头部 和底部 - (void)viewDidLoad { [super viewDidLoad]; [self tableView]; // 设置行高 self.tableView.rowHe ...

  4. 精通JavaScript的this关键字

    小提示 阅读本文,您需要了解JS的基本常识.您将花费40分钟完成本文的阅读. JS中的this关键字让很多新老JS开发人员都感到困惑.这篇文章将对this关键字进行完整地阐述.读完本文以后,您的困惑将 ...

  5. vim正则表达式(转)

    Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作. 如果你比较熟悉Perl的正规表达式,可以直接参照与Perl正则表达式的区别一节. 一.使用正则表达式的命令 使用正则表达 ...

  6. hibernate学习(3)——api详解对象(2)

    1.   Transaction 事务 事务的操作: 开启事务 beginTransaction() 获得事务 getTransaction() 提交事务:commit() 回滚事务:rollback ...

  7. LightOj 1220 - Mysterious Bacteria (分解质因子x=b^p 中的 x 求最大的 p)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1220 题意:已知 x=bp 中的 x 求最大的 p,其中 x b p 都为整数 x = ...

  8. 字符串数组(String []) 去掉重复值的方法

    public class Demo { /** * 去掉重复值 */ public static void main(String[] args) { String test = "100, ...

  9. 51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言

    http://os.51cto.com/art/201112/307610.htm 说到Web服务器,也许你第一时间会想到Apache,也许你会想到Nginx.虽然说Apache依然是Web服务器的老 ...

  10. 网页中调用Google地图

    <html> <head>  <meta http-equiv="Content-Type" content="text/html; cha ...