




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
窗口创建流程简介窗口在展讯平台中是一个至关重要的概念,与Windows操作系统相类似的,窗口在展讯平台中就是最终呈现给用户的一个应用程序。在这里,我们可以把窗口看作一个应用程序,因为,它不但能够显示内容给用户,而且更为重要的是,窗口能够处理系统中所有的内部消息及发送到该窗口的外部消息。一个应用程序是由一个或多个窗口构成的,例如Idle窗口只包含一个窗口,而短消息模块包含多个窗口。应用程序都是通过窗口显示给用户,并最终实现人机交互。下面我们来看下展讯平台的窗口创建流程。图1 动态窗口创建流程图2 静态窗口创建流程窗口分为静态窗口和动态窗口,静态窗口会在宏WINDOW_TABLE中先定义好窗口的属性,而动态窗口是在实现时动态创建窗口属性。具体如何选择,根据应用的需要来选择。展讯平台为用户提供了创建静态窗口和动态窗口的接口,分别为函数MMK_CreateWin和函数MMK_CreateWindow,具体如何创建窗口,可以参考展讯文档,这里主要讲述调用创建窗口接口后的流程。通过上面两个流程图,我们可以看到静态窗口和动态窗口的创建会调用几个相同的函数MMK_AddTreeNode、TreeNodeNew和MMK_WindowTreeNodeConstruct。这三个函数是为了创建窗口节点,窗口是通过树来管理的,如下图:图3 窗口管理展讯平台里退出当前窗口时,系统会执行注销当前窗口的操作,用树管理窗口的好处就是这时候系统会自动进入父窗口,从而达到用户希望的效果。创建完窗口节点后,会创建窗口的一些基本属性,如背景、显示区域等,这个时候我们看不到其它的属性,如状态栏、菜单、编辑框等等。静态窗口和动态窗口在这之后就会出现一些区别,静态窗口会在后面继续创建窗口其它的属性,这些属性在先前宏WINDOW_TABLE中已经定义好的,比如状态栏、标题栏、菜单栏、soft控件等。这些属性的创建是在以下函数中进行的。PUBLIC BOOLEAN MMK_ParseWinTab( MMI_HANDLE_T win_handle, uint32 *win_tab_ptr ) value_ptr = win_tab_ptr; while (END_WIN != *value_ptr) & (CAF_END_WIN != *value_ptr) ins = *value_ptr; value_ptr+; if (FIRST_PARSE ins) result = MMKParseFuncins - FIRST_PARSE(win_handle,&value_ptr);/调用函数表中的函数来创建窗口的其它属性 else if (CHILD_CTRL_FIRST ins) result = GUIFORM_ParseChild(ins - CHILD_CTRL_FIRST),win_handle,&value_ptr); else if (CAF_PARSEWIN_FIRST ins) result = CAFParseFuncins - CAF_PARSEWIN_FIRST(win_handle,&value_ptr); else SCI_ASSERT(FALSE); /*assert verified*/ if (!result) break; return (result);LOCAL const PARSE_FUNC MMKParseFunc = SetWinPrio, SetWinFunc, SetWinId, CreateMenuCtrl, CreatePopmenuCtrl, CreateMsgBoxCtrl, CreatePrgBoxCtrl, CreateTextCtrl, CreateListBoxCtrl,CreateEditTextCtrl, CreateEditPhonenumCtrl, CreateEditDigitalCtrl, CreateEditPasswordCtrl, CreateEditListCtrl, CreateEditDateCtrl, CreateEditTimeCtrl, CreateEditIPCtrl, CreateAnimCtrl,SetWinBackgroundID, CreateLabelCtrl, CreateButtonCtrl, SetWinStyle, CreateDropDownListCtrl, CreateIconListCtrl, CreateRichTextCtrl, CreateTabCtrl, CreateStatusBarCtrl,CreateSoftkeyCtrl,CreateTitleCtrl,SetWinMoveStyle, CreateTipsCtrl, CreateSettingList, CreateFormCtrl, CreateOwnDrawCtrl, CreateToolbarCtrl, SetWinSupportAngle,;而动态窗口在创建完基本的属性后,需要手动创建窗口的其它属性。如以下代码:LOCAL void OpenFileListMainWin(BOOLEAN is_internal_call) if(!MMK_IsOpenWin(MMIFMM_OPEN_FILE_BYLAYER_WIN_ID) MMI_WINDOW_CREATE_T win_create = 0; MMI_HANDLE_T win_handle = 0; MMI_CONTROL_CREATE_T create = 0; GUILIST_INIT_DATA_T init_data = 0; win_create.applet_handle = MMK_GetFirstAppletHandle(); win_create.win_id = MMIFMM_OPEN_FILE_BYLAYER_WIN_ID; win_create.win_priority = WIN_ONE_LEVEL; win_create.add_data_ptr = (ADD_DATA)(is_internal_call); win_create.window_style = 0; win_create.window_move_style = MOVE_BY_SETTING; if (NULL = s_handle_func) win_create.func = MMIFMM_HandleOpenFileByLayerWin; else win_create.func = s_handle_func; win_handle = MMK_CreateWindow( &win_create );/创建动态窗口 /create softkey if (0 != win_handle) GUISOFTKEY_INIT_DATA_T softkey_data = 0; MMI_CONTROL_CREATE_T softkey_create = 0; MMI_CTRL_ID_T softkey_ctrl_id = 0; softkey_data.leftsoft_id = STXT_OK; softkey_data.midsoft_id = TXT_NULL; softkey_data.rightsoft_id = STXT_RETURN; softkey_ctrl_id = MMITHEME_GetSoftkeyCtrlId(); softkey_create.ctrl_id = softkey_ctrl_id; softkey_create.guid = SPRD_GUI_SOFTKEY_ID; softkey_create.parent_win_handle = win_handle; softkey_create.init_data_ptr = &softkey_data; MMK_CreateControl( &softkey_create );/创建soft控件 MMK_SetWinSoftkeyCtrlId(win_handle, softkey_ctrl_id); /create title if (0 != win_handle) GUIWIN_CreateTitleDyna(win_handle, TXT_FMM_FILE_LIST);/创建标题栏 /create list if( 0 != win_handle ) init_data.both_rect = MMITHEME_GetWinClientBothRect(win_handle); /init_data.both_rect.h_rect = init_data.both_rect.v_rect = list_rect; init_data.type = GUILIST_TEXTLIST_E; init_data.is_dynamic_item_data = TRUE; create.ctrl_id = MMIFMM_OPEN_FILE_BYLAYER_LIST_CTRL_ID; create.guid = SPRD_GUI_LIST_ID; c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 证券投资风险评估与管理方法
- 产科护理月度工作总结与改进方案
- 拖拉机热处理加工生产线操作调整工节假日前安全考核试卷含答案
- 耐火材料模具工节假日前安全考核试卷含答案
- 生产线操作员理论考试题库
- 水解蒸馏工节假日前安全考核试卷含答案
- 匿名网络环境对社会舆论的双重影响
- 小学四年级小数运算与单位换算辅导
- 稀土色层工节假日前安全考核试卷含答案
- 合成氨装置操作工节假日前安全考核试卷含答案
- 桥梁监测方案
- 财务大数据基础-全套课件
- 碳达峰碳中和产业发展调研报告
- 四年级语文下册课外阅读《青铜葵花》导读课 课件(共24张PPT)
- 一般毒性作用
- GB/T 4213-2008气动调节阀
- 小学班队工作原理与实践班队活动的组织与设计课件
- 固体废物采样记录
- 【初中历史】商鞅变法优秀课件31-川教版
- 会议会务需求确认单
- 试生产方案确认表(各单位会签)
评论
0/150
提交评论