1、架构 WIN32 SDK

  ACT->CTL->API->GE/GOP

  

  ACT: Customized logic parts

  CTL: Behavior widgets

  API: UI API

2、调 用

  

  

  非UI操作UI的两种方式:

    1)MApp_ZUI_ProcessKey(U8 u8IRKey)  2) Execute Action

3、Features & Behavior

  HWND 行为:

  

  WINDOW ACT窗口API调用:

    如为某一个窗口增加TIMER

  

  WINDOW CTL部件API调用:

  每个CTL都有一个WinProc函数,通过MSG调用

  

  SKINTOOLS 默认的Default Window Procedure Behavior及默认行为:

  

  如果系统默认的Procedure不能满足需求,要手动定义WNDPROC:

  

  事件驱动方式:

  通过MSG导入到相应窗口的WINPROG

  

  UI开发流程:

  两类档案:1、BIN档,直接链接使用   2、INL档案,MSTAR_XXX_tables_c.inl  部分可修改

  

4、SkinTool注意事项

  1) 第一次载入MSTAR.xml,IMAGE需要重新设定路径:

    选中某一个图片,可以单独设置ColorKey,SHIFT多选图片设置属性

  

  2) 窗口的新建一般使用Button

  

  3)UI SIZE使用不同屏,可以快速调整UI X/Y/W/H适应不同分辨率的屏

    Tools->Stretch System Panel

    

5、OSD PAGE FUNCTION

  MApp_ZUI_APIwindow.c()  UI资源设置:

  

  全局API

  1) MApp_ZUI_Main.c

    非UI处理UI接口,包含“MApp_ZUI_Main.h”

    MApp_ZUI_Init()

    MApp_ZUI_MainTask()            //消息分发及定时器处理

    MApp_ZUI_ProcessKey()                             //非UI处理UI接口

    MApp_ZUI_ACT_ExecuteWndAction()              //非UI处理UI接口

    MApp_ZUI_GetActiveOSD()

    MApp_ZUI_GetPreviousOSD()

    MApp_ZUI_ACT_StartupOSD()

    MApp_ZUI_ACT_ShutdownOSD()

  2) MApp_ZUI_APIwindow.c()/MApp_ZUI_APIwindow.h()

    MApp_ZUI_API_GetMessage()

    MApp_ZUI_API_PostMessage()

    MApp_ZUI_API_SendMessage()

    MApp_ZUI_API_ShowWindow()

    MApp_ZUI_API_InvalidateRect()

    MApp_ZUI_API_GetWindowData()

    MApp_ZUI_API_MoveWindow()

    MApp_ZUI_API_GetWindowRect()

    MApp_ZUI_API_SetTimer()

    MApp_ZUI_API_KillTimer()

    MApp_ZUI_API_GetFocus()

    MApp_ZUI_API_SetFocus()

    MApp_ZUI_ACT_HandleGlobalKey()

    MApp_ZUI_ACT_ExecuteWndProc()

  3) 客制化:ACT PAGE

    注意“MApp_ZUI_ACT_HandleKey_XXX()”  return FALS/TRUE的区别

      “return TRUE” 表示接收后,不继续处理,“return FALSE”会继续处理

    MApp_ZUI_ACT_AppShow_XXX()

    MApp_ZUI_ACT_HandleKey_XXX()

    MApp_ZUI_ACT_ExecuteAction_XXX()        //UI<->UI     非UI->UI操作

    App_ZUI_ACT_GetDynamicText_XXX()      //动态字串

    MApp_ZUI_ACT_GetDynamicBmp_XXX()     //动态BITMAP

    MApp_ZUI_ACT_Terminate_XXX()

  4、资源绑定ACTION

    绑定行为、参数传递及按键导航

    MSTAR_XXX_tables_c.inl

    

    例如:

      1) WIND 类别ID  代表MAP到不同的window proc

        “EN_ZUI_DEFAULTWINPROC”代表的SkinTool默认的行为,即绘制页面的基本长相/查询“Keymap_Table”并导入相应的ACTION/导航操作等。

        其它的类别,会在MApp_ZUI_ACTglobal.c->MApp_ZUI_ACT_ExecuteWndProc()导入到相应的WIN PROG

        如:“EN_ZUI_DYNAMICTEXT_WINPROC” 会导入到MApp_ZUI_CTLdynatext.c->MApp_ZUI_ACT_DynamicTextWinProc()中

        的MApp_ZUI_ACT_GetDynamicText(hWnd)最终会获取具体客制化ACT的字串内容进行显示刷新。

      2) UI控件参数设定,如:EN_MSTAR_AUTOCLOSE_WINPROC 需要的参数 为100

      3) UI控件状态

      4) 导航设置

      5) 键行为映射

      1/2/5三个栏位是可手动修改的,SkinTools BUILD的时候不会被覆盖,如果多人修改UI,合代码的时候合并:1、MSTAR.xml  2、MSTAR_XXX_tables_c.inl的键绑定及1/2/5栏位。

    

    其它资源枚举:

      MSTAR_wndproc_h.inl

      MSTAR_strings_enum.h

      MSTAR_bitmap_EnumIndex.h

      MSTAR_components_h.inl

      ZUI_exefunc.h            //所有UI和逻辑切割的ACTION

    导入到相应PAGE,分配中枢:

      MApp_ZUI_ACTglobal.c

      MApp_ZUI_ACT_StartupOSD()

      MApp_ZUI_ACT_HandleGlobalKey()

      MApp_ZUI_ACT_ExecuteWndAction()

      MApp_ZUI_ACT_ExecuteWndProc()

      MApp_ZUI_ACT_PostMessageFilter()

    隐藏整个菜单:

      1)HIDE MAINFRAME

      2)SHOW MENU_XXX_BACKGROUND

      

6、默认菜单行为:MApp_ZUI_APIcontrols.c

  MApp_ZUI_API_DefaultWindowProc()

  主要工作是:重绘/按键导入

  

7、其它:

  关联重绘:

    如,蓝色A部件重绘时,棕色矩形B部件也会重绘,原因是A部件坐标与B部件坐标部分重叠,导致重绘A的同事B部件也会被重绘。

  

    

  

MSTAR GUI的更多相关文章

  1. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  2. 如何通过Git GUI将自己本地的项目上传至Github

    最近在学习node.js和react,顺便复习了下AngluarJS相关的东西,写了些小demo想放在GitHub上,之前仅限于只申请了GitHub账号从没用过,今天花半天时间查资料认真学习Githu ...

  3. git图像化界面GUI的使用

    GIT学习笔记 一.        基础内容 1.git是一个版本控制软件,与svn类似,特点是分布式管理,不需要中间总的服务器,可以增加很多分支. 2.windows下的git叫msysgit,下载 ...

  4. egret GUI 和 egret Wing 是我看到h5 最渣的设计

    一个抄袭FlexLite抄的连自己思想都没有,别人精髓都不懂的垃圾框架.也不学学MornUI,好歹有点自己想法. 先来个最小可用集合吧: 1. egret create legogame --type ...

  5. [C#] 走进异步编程的世界 - 在 GUI 中执行异步操作

    走进异步编程的世界 - 在 GUI 中执行异步操作 [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5877042.html 序 这是继<开始接 ...

  6. 1.JAVA之GUI编程概述

          下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式:                             ...

  7. 2.JAVA之GUI编程布局

    布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...

  8. 3.JAVA之GUI编程Frame窗口

    创建图形化界面思路: 1.创建frame窗体: 2.对窗体进行基本设置: 比如大小.位置.布局 3.定义组件: 4.将组件通过add方法添加到窗体中: 5.让窗体显示,通过setVisible(tur ...

  9. 4.JAVA之GUI编程事件监听机制

    事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...

随机推荐

  1. Java菜鸟到大牛学习路线培训教程

    第1阶段(Java程序员) - Java语言基础 - 101 JavaSE -01-常见Dos命令.Java历史.Java跨平台.配置Path环境变量.第一个HelloWorld例子 -02-配置JA ...

  2. mysql主从一致问题

    https://www.cnblogs.com/gomysql/p/3662264.html

  3. 百科知识 STEP文件如何打开

    使用任何的主流三维设计软件Pro/E.UG.CATIA.Solidworks等等都可以直接打开. STEP文件是通用格式,但是在打开的时候不同软件会生成不同的文件,下面是Solidworks打开的效果 ...

  4. angular 图片加载失败 情况处理? 如何在ionic中加载本地图片 ?

    1.angular 图片加载失败 情况处理 在directive中定义组件,在ng-src错误时,调用err-src app.directive('errSrc',function(){ return ...

  5. windows平台简易直播系统搭建

    最近做直播系统的朋友很多,正好前端时间也在做这一块,写片文章分享下开发心得,以为后用. 直播系统我将它分为前堆推流,后台服务,客户端播放三大部分.前端推流基于ffmpeg,后台服务 使用crtmp服务 ...

  6. Allegro基本操作——PCB布线

    转:http://blog.sina.com.cn/s/blog_1538bc9470102vyyq.html http://www.elecfans.com/article/80/110/2010/ ...

  7. Android 设计模式之单例模式

    设计模式是前人在开发过程中总结的一些经验,我们在开发过程中依据实际的情况,套用合适的设计模式,能够使程序结构更加简单.利于程序的扩展和维护.但也不是没有使用设计模式的程序就不好.如简单的程序就不用了, ...

  8. kbmmw 5.09 发布

    New stuff        =========        - Added kbmMWSmartBind.pas unit with optional kbmMWSmartBindVCL.pa ...

  9. EasyDarwin开源流媒体服务器将select改为epoll的方法

    本文来自EasyDarwin团队Fantasy(fantasy(at)easydarwin.org) 一. EasyDarwin网络模型介绍 EventContext负责监听所有网络读写事件,Even ...

  10. Asp.net mvc4 快速入门之构建表单

    1.asp.net mvc4  Index.cshtml页面上构建表单form的方式 @{ ViewBag.Title = "Index"; Layout = "~/Vi ...