《MMI软件开发平台》PPT课件.ppt

上传人:san****019 文档编号:17288063 上传时间:2020-11-17 格式:PPT 页数:68 大小:851.10KB
收藏 版权申诉 举报 下载
《MMI软件开发平台》PPT课件.ppt_第1页
第1页 / 共68页
《MMI软件开发平台》PPT课件.ppt_第2页
第2页 / 共68页
《MMI软件开发平台》PPT课件.ppt_第3页
第3页 / 共68页
资源描述:

《《MMI软件开发平台》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《MMI软件开发平台》PPT课件.ppt(68页珍藏版)》请在装配图网上搜索。

1、MMI软件开发平台 Date: 3/3/2005 Created by: Phoebe Chen Figo Feng Lin Lin 2020年 11月 17日 Proprietary and Confidential Information 2 Contents 1. 平台介绍和计划安排 2. Kenel接口 3. GUI接口 4. 开发和调试实例 2020年 11月 17日 Proprietary and Confidential Information 3 平台介绍和计划 Spreadtrum提供了一套基于类似 mini widows机制 的 MMI开发平台 , 并且提供了与网络相关部分

2、的 MMI源码 。 同时我们也提供了 MMI开发的配套工具软件包 。 客户可以 基于此方便的做二次开发 。 现已有多款手机使用此平台进 行开发 。 2020年 11月 17日 Proprietary and Confidential Information 4 平台结构 SOFTWARE APPLICATION PLATFORM RTOS Diagnostics Drivers(HAL) MN (Call,CB,NV,SS,SMS,GPRS) Layer 3 Layer 1 Layer 2 TCP/UDP IP/PPP RTP/RTCP Multimedia Applications Audi

3、o/Video/Test Call SMS CBS SS PB Game . MMI WAP MMS/WEB E-Mail SIP H.324/M PTT ATC MIDI MP3 MPEG4 H.263 Engines J2ME Java App DAL( LCD,KPD,CHR) AUDIO, VIDEO OSA EFS MMI Platform 2020年 11月 17日 Proprietary and Confidential Information 5 一个 MMI示例 PB USSD 开关机SSMMSSMSCC 通话记录 STK WAP 娱乐 工具设置 K e r n e l ,窗

4、口 管理,消息队 列管理 GUI Control GSM/GPRSDAL 1 MMI Common Interface Control Interface 1 4 9 765 3 2 10 19 18 17 16 15 141312 11 2020年 11月 17日 Proprietary and Confidential Information 6 简述 MMI开发平台的三个重要概念 Application :描述了 MMI Kernel中处理 PS消息非常重要的模块, 例如 sms, cc. WINDOW: 窗口,用于处理 focus消息(在此窗口下面才需要处理 的消息) Control:

5、 控件,也就是窗口要用到的公共的特性,比如编辑特性、 Text显示特性、动画特性等等 2020年 11月 17日 Proprietary and Confidential Information 7 Application、 Window和 Control的关系 APPLICATION WINDOW CONTROL CONTROL CONTROL 2020年 11月 17日 Proprietary and Confidential Information 8 2.Kernel接口 MMI Kernel主要提供完善的 消息驱动 流程和 窗口管理 机制 。 为各种上层应用 ( CC、 SMS、 W

6、AP、 MMS等 ) 提供 良好的支持 。 2020年 11月 17日 Proprietary and Confidential Information 9 Kernel提供的功能 1.对消息流程进行管理 外部消息 主要包括 PS消息 、 key消息 、 Timer消息和一些由其它模块 发送过来的消息; 内部消息 MMI模块内部发送 、 接收和处理的消息 , 不与其它模块发生 任何关系 .(现在我们用到的就是 focus消息 , 由窗口处理 , 这类消息使用最多最频繁 ) 2.提供窗口管理机制 了解 Kernel对窗口的管理机制: 通过维护一个全局变量:是 MMI Kernel中一个非常核心的

7、数据结 构 , 它是整个窗口调度过程的核心 , 这个数据结构由 MMI Kernel 维护 。 2020年 11月 17日 Proprietary and Confidential Information 10 Application的概念 Application:描述了 MMI Kernel中非常重要的应用处理模块。 可以分为两类: 需要注册系统消息的( SMS Application, Call Application, Stk Application ) 不需要注册系统消息的( DC, Multimedia) 2020年 11月 17日 Proprietary and Confident

8、ial Information 11 注册消息 APPLICATION举例 系统消息由 Application处理 。 如果需要系统消息 , Application在初 始化时要注册需处理的消息 。 Kernel只会根据注册的 Application来 分发 。 一个 PS消息可以被多个 Application注册 , Kernel会依次分发消息给 各个 Application。 我们现在需要注册消息的应用: g_main_app g_cc_app g_sms_app g_mmiphone_app g_stk_app . 静态的 , 全局 , 一般在初始化时建立 。 2020年 11月 17日

9、 Proprietary and Confidential Information 12 Window的概念 Window:窗口是最终用户可以直接看到的一个个实在的屏幕 , 是直 接和用户打交道的 , 专门处理用户的按键输入等操作 , 并且将最终用 户输入后的处理结果显示在屏幕上 。 窗口的消息处理函数 , 用来处理最终用户的直接输入 。 窗口还要管理其所属的控件 , 将部分消息交给控件处理 。 2020年 11月 17日 Proprietary and Confidential Information 13 Control的概念 Control:控件 , 也就是窗口要用到的公共的特性 , 比

10、如编辑特性 、 Text显示特性 、 动画特性等等 。 使用控件可以使开发人员专注于应用的功能开发 , 而不是过多限制在 界面的开发 。 2020年 11月 17日 Proprietary and Confidential Information 14 Kernel中的窗口管理 窗口管理是 MMI Kernel中非常重要的部分 , 直接决定了上层应用的 开发 。 窗口管理主要包括应用窗口和控件之间的管理和通信 、 各个窗口间稳 定的切换 。 应用窗口负责上层的应用和显示等 。 2020年 11月 17日 Proprietary and Confidential Information 15 K

11、ernel中的窗口管理, 举例 建立窗口的一些常量的属性:建立窗口 wintab: WINDOW_TABLE( MMISMS_EDIT_WIN_TAB ) = CLEAR_LCD, /清屏 WIN_PRIO( WIN_ONE_LEVEL ), /窗口优先级 WIN_TITLE_ID( TXT_SMS_WRITE ), /固定的 title WIN_FUNC(uint32) HandleEditWinMsg ), /窗口消息处理函数 WIN_ID( MMISMS_EDIT_WIN_ID ), /ID CREATE_TEXTEDITBOX_CTRL( MMISMS_FULLSCREEN_CLIEN

12、T_LEFT, MMISMS_FULLSCREEN_CLIENT_TOP, MMISMS_FULLSCREEN_CLIENT_RIGHT, MMI_INPUT_EDITBOX_BOTTOM, MMISMS_MAX_UCS2_MESSAGE_LEN, MMISMS_MAX_MESSAGE_LEN, T9_PINYIN | T9_STROKE | T9_ENGLISH | T9_CHARACTER | T9_DIGITAL, T9_PINYIN_MODE, MMISMS_EDITWIN_EDITCTRL_ID), /控件 END_WIN ; 详细的讲解请见后面应用实例 2020年 11月 17日

13、Proprietary and Confidential Information 16 窗口 Priority 设置窗口优先级的目的是为了保护那些重要的窗口在处于 Focus状态 下不被打断 , 比如 Call窗口 , 在 Call的过程中不应该出现被 SMS或者 Alarm窗口打断 , 否则会影响 Call的过程 。 我 们 在 这 里 暂 时 制 定 了 4 个 优 先 级 : WIN_LOWEST_LEVEL ,WIN_ONE_LEVEL, WIN_TWO_LEVEL, WIN_THREE_LEVEL。 我 们 提 供 了 操 作 窗 口 优 先 级 的 两 个 函 数 : GetWin

14、Priority , SetWinPriority。 用户可以根据应用来调用这两个操作窗口优先级的 函数 。 在窗口的初始化 ( 针对静态常口 ) 和创建 ( 针对动态窗口 ) 过 程中 , 需要对窗口优先级进行设置 。 2020年 11月 17日 Proprietary and Confidential Information 17 窗口 Priority (续) 电池电量低提示窗口 关机窗口 新信息提示窗口,未接电话提示窗口,闹钟时间到的窗口,ID LE 窗口 等级3 等级1 最低等级 所有应用的窗口级别,低电量提示窗口,在非通话状态下闹钟时间到 的窗口, cc 的窗口 等级2 2020年

15、 11月 17日 Proprietary and Confidential Information 18 虚拟窗口 虚拟窗口主要是指那种已经打开了但是无法得到 Focus的应用窗口 。 比如在打电话的过程中来了一条短信 , 因为 Call的窗口的等级比较高 , 这个时候来短信的窗口无法得到 Focus, 也无法显示出来 。 当前应用窗口结束后 , 系统会优先使虚拟窗口链表中的应用窗口得到 Focus。 等级越高的应用窗口越先打开 , 当应用窗口处于同一等级时 , 按照先 进先出方式 ( 后打开的得到 Focus ) 打开应用窗口 。 2020年 11月 17日 Proprietary and

16、Confidential Information 19 Kernel中的消息机制 2020年 11月 17日 Proprietary and Confidential Information 20 消息分类 从消息的接收情况,分为 外部消息 主要包括 PS消息、 key消息、 Timer消息和一些由其它模块发 送过来的消息; 内部消息, MMI模块内部发送、接收和处理的消息,不与其它模块发生任 何关系 . 在 App_Task的消息循环当中总是处理完内部消息之后再处理外部消 息。 2020年 11月 17日 Proprietary and Confidential Information 21

17、 消息分类(续) 根据不同的消息发送和处理流程来划分 , 消息分为 4个类别: 第一类消息为系统消息 ( 主要为 PS消息和其它一些 System消息 ) , 只有 App在注册后才能够处理这条消息 , 对于没有注册的系统消息 , 将交给默认的 MainApp处理 。 一条系统消息可以被多个 App注册和处 理 。 第二类为 Focus消息 , 系统直接将这种类型的消息直接发送给处于 Focus状态的 APP, 由 APP对消息进行处理 。 第三类广播消息 , 将根据 Application的链表 , 调用每一个的消息处 理过程 , 这属于每一个 App都要处理的过程 , 每个 App只处理自

18、己感 兴趣的消息 , 至于 App的处理方式 ( 是交给 Window处理还是 App本身 处理 ) , 系统没有任何限制 。 ( 这个暂时没有用过 ) 第四类定时器消息 , 由于定时器使用的比较广泛 , 而且无法将其归 为系统消息或 Focus消息 , 为了更好的处理 , 将其单独的作为一类消 息处理 。 2020年 11月 17日 Proprietary and Confidential Information 22 外部消息处理 外部消息由 Application来处理; 外部消息需要 Application事先在 mmk_regapp.def中定义 应用所关心的消息; 外部消息队列由嵌

19、入式操作系统维护; 2020年 11月 17日 Proprietary and Confidential Information 23 内部消息处理 内部消息不需要应用模块进行注册; 内部消息由 Window, Control处理; 内部消息队列由 Kernel模块维护; 内部消息定义在 mmk_msg.h中; 2020年 11月 17日 Proprietary and Confidential Information 24 消息处理流程 MMI KERNEL Queue (internal) Queue (external) Control WINDOW APPLICATION 2020年

20、11月 17日 Proprietary and Confidential Information 25 窗口通信 一般的窗口 ( 包括应用窗口和控件 ) 都需要彼此之间能够传送消息 , 比如应用窗口需要将消息传给控件 ( 一个刷新的消息 ) 或者一个控件 需要另一个控件处理消息等 , 这些都会涉及到窗口间的通信 , 一般有 两种通信方式: 异步通信方式 , 用 MMK_PostMsg()函数来实现 。 异步通信方式主要将消息发送到内部消息队列中 , 即当发送消息的窗 口返回后 , 这条消息才会被处理 。 因为这是一种 Focus消息 , 所以接 收的窗口必须是应用窗口 , 只有应用窗口才可以得

21、到 Focus。 同步通信方式 , 用 MMK_SendMsg()函数来实现 。 2020年 11月 17日 Proprietary and Confidential Information 26 3 GUI接口 GUI 模块的主要功能就是给应用开发提供最基本的 图形控件接口,并跟窗口系统、消息机制结合,处 理基本的人机操作。 2020年 11月 17日 Proprietary and Confidential Information 27 Control的基本属性 图形化,和用户交互 可以 Active 可接受消息,有消息处理函数 依赖于窗口存在 每个具体的 control有唯一 ID 20

22、20年 11月 17日 Proprietary and Confidential Information 28 控件的使用 有 2种形式 1. 在 wintable中加入一个控件 2. 动态创建 2020年 11月 17日 Proprietary and Confidential Information 29 控件的使用 -wintable CREATE_MENU_CTRL CREATE_LISTBOX_CTRL CREATE_TEXTEDITBOX_CTRL CREATE_ANIMATION . 2020年 11月 17日 Proprietary and Confidential Infor

23、mation 30 控件的使用 动态创建 创建控 件 : GUIANIMATE_Init() 将该控件加入到 window中 MMK_CreateDynaCtrl() 设定控件的参数 :GUIANIMATE_SetParam 2020年 11月 17日 Proprietary and Confidential Information 31 GUI提供的控件 1. Menu控件:菜单控件 2. EditBox控件:编辑框控件 3. ListBox控件:列表框控件 4. TextBox控件:文本框控件 5. Animate控件:图形控件 6. MessageBox控件:消息框控件 7. Progr

24、essBox控件:进度条控件 8. Punctuation控件:标点符号控件 9. SoftKey控件:软键盘控件 10. Calendar控件:日历控件 11. 字库:字体 12. LCD:显示屏 13. T9:输入法 2020年 11月 17日 Proprietary and Confidential Information 32 Menu控件介绍 树状结构,显示多级菜单 实现菜单项的设定,显示,上下左右按键选择, 选中后自动进入下级子菜单,或者执行相应的操 作 菜单项文字过长滚动显示 分为两类:静态菜单,动态菜单 目前已实现的风格:文字菜单,旋转图,九宫格 2020年 11月 17日 P

25、roprietary and Confidential Information 33 添加静态菜单 1.添加 menu id (mmi_menutable.h) 2.添加 menu and menu item (mmi_menutable.c) 3.将新增加的 menu加入 menutable中 (mmi_menutable.def) 4.为菜单项写处理函数 2020年 11月 17日 Proprietary and Confidential Information 34 添加动态菜单 1. 调用 GUIMENU_InsertNode 2020年 11月 17日 Proprietary and

26、 Confidential Information 35 EditBox控件 能正确编辑 、 录入数字号码 、 密码 、 字母及文字 包括标题 、 软键盘;日期 、 时间 、 秒表 、 密码 、 数字号码 、 字母 、 非 ascii码文字等正文的各种特 殊显示 显示编辑中的光标 显示编辑中候选字的显示; 自动分页 支持滚动条 支持的输入法: T9 2020年 11月 17日 Proprietary and Confidential Information 36 ListBox控件 分为三类:单选,多选,文字 支持上下滚动,连续滚动 支持数据分批载入 在标题上显示当前项和总项数(例如 2/20

27、0) 动态添加,删除,更改 2020年 11月 17日 Proprietary and Confidential Information 37 TextBox控件 显示一段文本 包括标题、软键盘;文本内容 文本内容超过屏幕大小自动换行 支持滚动条 响应向上键向上卷动或翻页 响应向下键向下卷动或翻页 2020年 11月 17日 Proprietary and Confidential Information 38 Animate控件 显示图形、图象、动画。 bmp, icon图像以及 jpg, gif等流行的图像格式示,自定义动画以及 gif等流行的动画格式的显示。 2020年 11月 17日

28、Proprietary and Confidential Information 39 MessageBox控件 显示弹出框 支持图片,动画,文字, softkey,背景色的设定 支持多种显示风格 2020年 11月 17日 Proprietary and Confidential Information 40 Punctuation控件 显示当前支持的所有标点符号 和编辑框配合使用,将选中的标点符号插入到文本 中 2020年 11月 17日 Proprietary and Confidential Information 41 Calendar控件 显示日历 一页显示一个月的内容, 12个月

29、份有不同的背景图 片,年月,周日 周六,日期,当前日与其他日有不 一样的颜色 响应上键向前移一月,响应下键向后移一月,响应 左键向前移一天,响应右键向后移一天。 2020年 11月 17日 Proprietary and Confidential Information 42 其他控件 SoftKey控件: 可设定文字,背景, icon ProgressBox控件 显示当前进度 可设定最大值,最小值,当前值 Label控件 显示一行文字,过长则滚动显示 可动态更改显示区域,文字 2020年 11月 17日 Proprietary and Confidential Information 43

30、GUI_LCD 直接在屏幕上画线,显示图片 对底层 lcd驱动进行包装 LCD_DrawHLine, LCD_DrawVLine, LCD_DrawRect, LCD_FillRect, LCD_DisplayCompressedBmp, LCD_DrawLine. 2020年 11月 17日 Proprietary and Confidential Information 44 GUI_Font 直接在屏幕上显示字符串 获得字体的高度,宽度 GUI_GetFontWidth, GUI_GetFontHeight, LCD_DisplayStringInRect, LCD_DisplayStr

31、ing. 2020年 11月 17日 Proprietary and Confidential Information 45 Control风格 每一类 control和 window的缺省显示风格定义在文件 mmi_theme.c/h中 用户可自定义各种不同的字体,背景色,前景色 mmidisplay_data.c/h 2020年 11月 17日 Proprietary and Confidential Information 46 GUI接口的参考 详情参考 GUI接口说明书及其相关头文件。 2020年 11月 17日 Proprietary and Confidential Inform

32、ation 47 应用实例:(以 SMS应用为例) 开发实例一、 Application的创建 开发实例二、利用 Window Table设计窗口 开发实例三、更改图片铃声资源 2020年 11月 17日 Proprietary and Confidential Information 48 开发实例一、 Application的创建 Step 1:创建工作目录和相应的文件。 Step 2:定义 Application变量。 Step 3:在 mmk_ext_app.h中增加 sms全局应用变量。 Step 4:注册系统消息。 Step 5:初始化 sms应用模块。 Step 6:编写应用消息

33、处理函数。 2020年 11月 17日 Proprietary and Confidential Information 49 Step 1:创建工作目录和相应的文件。 建立以下三个目录: .MS_APPBMMISourceAppSMS .MS_APPBMMISourceAppSMSc .MS_APPBMMISourceAppSMSh 增加以下 C/H文件 (根据模块需要而定 ) mmismsapp_main.c mmismsapp_order.c mmismsapp_wintab.c mmisms_api.h mmisms_app.h mmismsapp_wintab.h 2020年 11月

34、 17日 Proprietary and Confidential Information 50 Step 2:定义 Application变量。 在 mmisms_main.c中 增加 变量定义: MMI_APPLICATION_T g_mmisms_app;/SMS的实体 2020年 11月 17日 Proprietary and Confidential Information 51 Step 3:在 mmk_ext_app.h中增加 sms 全局应用变量 #ifdef _cplusplus extern C #endif . . . extern MMI_APPLICATION_T g

35、_cc_app; extern MMI_APPLICATION_T g_mmisms_app;/SMS的实体 extern MMI_APPLICATION_T g_mmipb_app; . . . #ifdef _cplusplus #endif 2020年 11月 17日 Proprietary and Confidential Information 52 Step 4:注册系统消息 在 mmk_regapp.def文件中增加此应用模块希望处理的系统消息。 例如, SMS应用可以接收消息 ID号码在 APP_MN_SMS_READY_IND到 APP_MN_SMSCB_REJ_IND之间的

36、消息。则在 mmk_regapp.def文件中增 加: REG_APP(APP_MN_SMS_READY_IND, APP_MN_SMSCB_REJ_IND, MMISMS_AppInit();/sms应用模块的初始化 MMIPB_InitApp(); . . . 2020年 11月 17日 Proprietary and Confidential Information 54 Step 5:初始化 sms应用模块 (续 ) 在 sms模块的初始化函数中指定消息处理函数和 component类型 void MMISMS_AppInit() . . . g_mmisms_app.ProcessM

37、sg = HandlePsMsg; g_mmisms_ponent_type = CT_APPLICATION; . . . 2020年 11月 17日 Proprietary and Confidential Information 55 Step 6:编写应用消息处理函数 LOCAL MMI_RESULT_E HandlePsMsg ( PWND app_ptr, uint16 msg_id, DPARAM param) uint8 result = MMI_RESULT_TRUE; switch ( msg_id ) case APP_MN_SMS_READY_IND: break; c

38、ase APP_MN_READ_SMS_CNF: break; 2020年 11月 17日 Proprietary and Confidential Information 56 Step 6:编写应用消息处理函数 (续) case APP_MN_UPDATE_SMS_STATE_CNF: break; . . . default: result = MMI_RESULT_FALSE; break; return ( result ); 2020年 11月 17日 Proprietary and Confidential Information 57 开发实例二、利用 Window Table

39、设计窗口 请参考 MMK_Window_Table开发说明书 .doc Step 1:在 win.def文件中声明窗口表。 Step 2:在 mmk_type.h文件中声明窗口 ID。 Step 3:在 mmk_type.h文件中声明控件 ID。 Step 4:在 mmi_text.def文件中声明文本的 ID。 Step 5:创建 Window Table表。 Step 6:使用 Window Table表打开窗口。 Step 7:实现窗口的消息处理函数。 Step 8:依次类似编写每个 Window。 2020年 11月 17日 Proprietary and Confidential I

40、nformation 58 Step 1:在 win.def文件中声明窗口表。 . . . WIN_DEF( MMISMS_MENUWIN_TAB ) WIN_DEF( MMISMS_EDIT_WIN_TAB ) WIN_DEF( MMISMS_EDITOPTION_WIN_TAB ) . . . 2020年 11月 17日 Proprietary and Confidential Information 59 Step 2:在 mmk_type.h文件中声明窗口 ID typedef enum BEGIN_WIN_ID, . . . MMISMS_MENU_WIN_ID, MMISMS_ED

41、IT_WIN_ID, MMISMS_EDITOPTION_WIN_ID, . . . MMI_WINDOW_ID_E; 2020年 11月 17日 Proprietary and Confidential Information 60 Step 3:在 mmk_type.h文件中声明控件 ID typedef enum BEGIN_CTRL_ID, . . . MMISMS_MENU_CTRL_ID, MMISMS_EDITWIN_EDITCTRL_ID, MMISMS_SENDNUMOPTION_LISTCTRL_ID, . . . MMI_CONTROL_ID_E; 2020年 11月 1

42、7日 Proprietary and Confidential Information 61 Step 4:在 mmi_text.def文件中声明文本的 ID。 . . . TEXT_DEF(TXT_SMS_WRITE, Write, x06x51x99x6dx88x60 x6f)/写消息 . . . 2020年 11月 17日 Proprietary and Confidential Information 62 Step 5:创建 Window Table表。 WINDOW_TABLE( MMISMS_EDIT_WIN_TAB ) = CLEAR_LCD, WIN_PRIO( WIN_ON

43、E_LEVEL ), WIN_TITLE_ID( TXT_SMS_WRITE ), WIN_FUNC(uint32) HandleEditWinMsg ), WIN_ID( MMISMS_EDIT_WIN_ID ), CREATE_TEXTEDITBOX_CTRL(0, 20, 127, 110, MMISMS_MAX_UCS2_MESSAGE_LEN, MMISMS_MAX_MESSAGE_LEN, T9_PINYIN | T9_STROKE | T9_ENGLISH | T9_CHARACTER | T9_DIGITAL, T9_PINYIN_MODE, MMISMS_EDITWIN_ED

44、ITCTRL_ID), END_WIN ; 2020年 11月 17日 Proprietary and Confidential Information 63 Step 5:创建 Window Table表 (续) 说明: WINDOW_TABLE: 是用来定义 Table数组的 , 后面的参数是数组名 , 在应用调用 MMK_CreateWin的时候需要用到 。 CLEAR_LCD:清除 LCD Buffer。 WIN_PRIO: 设置窗口优先级的 , 参数为 MMI_WIN_PRIORITY_E枚举 类型 。 WIN_TITLE_ID: 用于设置窗口的标题 。 后面的参数是窗口文本的 ID

45、。 WIN_FUNC: 设置窗口的消息处理函数 。 后面的参数是该窗口的消息 处理函数 。 WIN_ID: 设置窗口 ID, 参数为 MMI_WINDOW_ID_E枚举类型 。 CREATE_TEXTEDITBOX_CTRL:用于创建一个 Text EditBox控件 。 END_WIN: Window Table的结束标志 , 每一个 Window Table的最后 一个成员必须是 END_WIN宏 。 2020年 11月 17日 Proprietary and Confidential Information 64 Step 6:使用 Window Table表打开窗口。 MMK_Crea

46、teWin(uint32*)MMISMS_EDIT_WIN_TAB, PNULL); 2020年 11月 17日 Proprietary and Confidential Information 65 Step 7:实现窗口的消息处理函数 LOCAL MMI_RESULT_E HandleEditWinMsg( MMI_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param ) MMI_RESULT_E recode = MMI_RESULT_TRUE; TEXTEDIT_STRING_INFO_T edit_string; swit

47、ch(msg_id) case MSG_OPEN_WINDOW: break; case MSG_FULL_PAINT: break; 2020年 11月 17日 Proprietary and Confidential Information 66 Step 7:实现窗口的消息处理函数 (续) case MSG_CLOSE_WINDOW: break; . . . default: recode = MMI_RESULT_FALSE; break; return recode; 2020年 11月 17日 Proprietary and Confidential Information 67 Step 8:依次类似编写每个 Window 2020年 11月 17日 Proprietary and Confidential Information 68 Thanks!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!