VAF使用手册.docx_第1页
VAF使用手册.docx_第2页
VAF使用手册.docx_第3页
VAF使用手册.docx_第4页
VAF使用手册.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AVOGINSVAF使用手册AppDevVAF使用手册版本作者最后修订日期V0.1jack2010-10-24目录VAF概述4VRE简介4VAF简介4VAF优点4VAF缺点4VAF使用4VAF结构4UI结构5UE体验5VAF开始6入口6窗口的使用10VAF概述VRE简介(请参阅VRE文档)VAF简介VAF全称VRE Application Framework,它是一个基于VRE平台的应用程序开发框架,提供了一套完整的应用程序开发框架的方案,包括窗体、控件等属性,还有在不断完善的class和api,可以说用VAF进行开发普通的应用程序可以让开发者事半功倍,开发效率明显提高,如果开发者拥有类似MFC、.net开发的经验,那会很容易上手。VAF优点1. VAF能够帮助开发者提高应用软件的开发效率。2. VAF能够提高应用程序UI和UE体验。3. VAF使用起来极其方便,提供了很多有用的功能和接口,我们内部开发了一个非常强大的基类,从这个基类扩展出窗口基类和控件基类,从而开发者可以使用这个控件基类开发出任何自己想要样式的控件。我们使用窗口管理系统方便的管理窗口的调度、显示、隐藏、销毁,同样的也有控件管理器管理控件。VAF缺点1. 不支持控件本身加入控件,简短来说就是控件的嵌套,目前我们采用消息的传递来使控件交互。VAF使用VAF结构VAF是基于C+开发,使用了类、继承、重载。VAF的消息处理是即时处理,没有消息队列,一旦收到VRE发过来的消息会立即处理。VAF的框架构成:1. Core部分,2. Windows管理器部分,3. Windows,4. Controls管理器部分,5. Controls,6. 一些其他的部分。VAF的扩展性和通用性是由窗口基类和控件基类决定的,由于设计当初对于基类功能的定义比较详细,所以扩展性和通用性相对来说也很强大。VAF的大致流程可以用下图来解释一下:UI结构如图,UiBase是基类,由它扩展出UiControl(控件基类)和UiWindow(窗口基类)出来,再由UiControl扩展出具体的控件类,由UiWindow扩展出具体的窗体类。当然开发者也可以再从具体的控件类或者窗口类进行二次开发出新的控件类或者窗口类。UE体验VAF的UE有拖拽,漂亮的外观,放弃了滚动条的拖动,摒弃了弹出菜单取而代之的就是全屏的菜单,所有的目的都是为了增强对于触摸屏用户的体验。详情请使用后便知。VAF开始入口首先先建立好VRE工程,例如新建的工程叫HelloWorld,如图:因为VAF是使用C+开发的,所以需要把文件原来是.c的要改成.cpp,.h文件没什么需要可以直接删掉,就一个.cpp就好了,然后把HelloWorld.cpp里的内容全部删光,然后贴上这段代码:#include ././vaf/vaf/vaf_include.hvoid vm_main(void)vaf_core_init(ENABLE_DEBUG); /UNABLE_DEBUGvm_reg_sysevt_callback(vaf_handle_sysevt);vm_reg_keyboard_callback(vaf_handle_keyevt);vm_reg_pen_callback(vaf_handle_penevt);此时你的App的所有事件消息就完全由VAF接管了,但是此时你还做不了什么,运行起来什么也没什么,此时我们需要注册一个App在VAF的入口,先解释一下上面那段话的意思:vaf_core_init(ENABLE_DEBUG); /UNABLE_DEBUG这句是vaf的内核部分初始化,参数ENABLE_DEBUG和UNABLE_DEBUG分别是打开和关闭vaf.log,打开后vaf.log会存放在根目录下(如果有存储卡,就在存储卡),打开后在程序中使用vaf_debug可以输出log,用法和printf一样。vm_reg_sysevt_callback(vaf_handle_sysevt);vm_reg_keyboard_callback(vaf_handle_keyevt);vm_reg_pen_callback(vaf_handle_penevt);以上三句就是把系统消息都注册给vaf,由vaf接管。下面我来讲下VAF对于App的入口怎么来,请看以下代码:#include vaf/vaf_include.hvoid vaf_entry(void)void vm_main(void)vaf_core_init(UNABLE_DEBUG);vm_reg_sysevt_callback(vaf_handle_sysevt);vm_reg_keyboard_callback(vaf_handle_keyevt);vm_reg_pen_callback(vaf_handle_penevt);vaf_register_app_entry(vaf_entry);看了以上代码应该知道怎么弄了伐,我就不细说了。不过此时还不能编译通过。我们需要把vaf的库加进来。先说模拟器,首先先把vaf_simulator_lib.lib拷贝到HelloWorld根目录下,然后请看图:如图然后点OK即可。手机上Arm编译的库的添加方式,如图:把vaf_lib.a拷贝到HelloWorld根目录点OK即可,不过还是编译不过,我们需要把vaf的头文件加进来,先把vaf文件夹都复制到HelloWorld根目录下,然后把在HelloWorld工程没目录下新建一个文件夹vaf,然后把头文件都添加进去,如图:别忘记这个时候我们需要点一下VC6保存所有(Save all)的按钮,然后试试不管是vc编译还是arm编译都没问题了,HelloWorld.vxp出现了,第一步成功了。(如果编译不过,貌似是vmmedia.h这个头文件找不到,请把#include “vmmedia.h”这句话注释掉即可)窗口和控件的使用窗口基类是UiWindow,控件的基类是UiControl,用之前我希望大家能先看一下。首先我们先把controls和我windows加入到工程里如图:然后我们再新建一个app文件夹用来存放我们自己的工程里自己的东西,建立两个文件如图:具体内容请看文件中的代码,这里略。请先看源码HelloWorld,谢谢。如果已经看了,我们接着来说。此时你可以看到如下的景象:没错,你看到了一个窗口,然后上面的白条就是一个label,由于我们没有给Label设置背景色所以默认是白色的,上面有HelloMain Window。好,我们现在来讲讲代码:首先HelloMain类是继承自UiWindow的一个窗口类,HelloMain窗体拥有UiLabel的一个实例对象label_title的指针,label_title在HelloMain的初始化函数OnInitWnd里new了一个实例然后对其属性进行了一些基础的赋值,然后使用AddUiControl方法添加到HelloMain这个窗体里,然后一个大概的窗口我们就建立好了,然后我们需要在vaf_entry这个入口里实例化这个HelloMain窗体,然后Create一下这个窗体的一些属性,例如起始坐标x,y,长度和宽度,是否有父窗体句柄(此功能暂时无效请填NULL),最后一个就是窗体ID,这个ID在合适的地方用是非常易用的,例如你可以以这个ID获

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论