zoukankan      html  css  js  c++  java
  • MSTAR GUI

    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部件也会被重绘。

      

        

      

  • 相关阅读:
    使用Jenkins进行Android自动打包,自定义版本号等信息【转】
    Android config Android.mk parameter
    cocos2D-X config external library
    OpenCV Install OpenCV with Visual Studio
    cmake make library
    cocos2D-X create image sprite solution
    cocos2d-X 打开一个文件是否跨平台
    android use NDK api call AssetManager
    android add asset file
    android error: cannot use ‘throw’ with exceptions disabled
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/7003156.html
Copyright © 2011-2022 走看看