欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      Mstar_6M48學(xué)習(xí)心得之關(guān)于在已有的一個(gè)OSD Win上增加了一個(gè)Pag(精選五篇)

      時(shí)間:2019-05-12 04:48:53下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《Mstar_6M48學(xué)習(xí)心得之關(guān)于在已有的一個(gè)OSD Win上增加了一個(gè)Pag》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《Mstar_6M48學(xué)習(xí)心得之關(guān)于在已有的一個(gè)OSD Win上增加了一個(gè)Pag》。

      第一篇:Mstar_6M48學(xué)習(xí)心得之關(guān)于在已有的一個(gè)OSD Win上增加了一個(gè)Pag

      關(guān)于在已有的一個(gè)OSD Win上增加了一個(gè)Page:(以在Mainmenu里增加一個(gè)test page為例)

      1、MApp_Main.c里有個(gè)while(1)循環(huán);

      2、通過(guò) while(1)循環(huán)MApp_MultiTasks 里面的 MApp_ProcessUserInput 可以 得到 當(dāng)前的

      u8KeyCode

      3、while(1)循環(huán) 里面的MApp_TopStateMachine的作用:

      3.1、在剛開(kāi)機(jī)時(shí),首先 enTopState = STATE_TOP_DIGITALINPUTS 等待用戶輸入;3.2、再次調(diào)用:MApp_TopStateMachine時(shí),switch(enTopState)之后調(diào)用 switch(MApp_TV);3.3、當(dāng)用戶在IR中輸入Menu按鍵;3.4、通過(guò)MApp_TV調(diào)用MApp_TV_ProcessUserInput 之后

      switch(u8KeyCode)

      case KEY_MENU: enTVState = STATE_TV_INIT;enTVRetVal = EXIT_GOTO_MENU;u8KeyCode = KEY_NULL;

      break;

      switch(MApp_TV())case EXIT_GOTO_MENU:

      enTopState = STATE_TOP_MENU;

      break;3.5、再次調(diào)用:MApp_TopStateMachine時(shí),witch(enTopState)之后調(diào)用 switch(MApp_Menu_Main());3.6、通過(guò)MApp_Menu_Main調(diào)用MApp_ZUI_ACT_StartupOSD(E_OSD_MAIN_MENU);再調(diào)用MApp_ZUI_ACT_AppShowMainMenu();就可以Show出我們想要Show出的主界面了。

      enMainMenuState = STATE_MENU_WAIT;_eZUIState = E_ZUI_STATE_RUNNING;3.7、再次調(diào)用MApp_Menu_Main時(shí),switch(enMainMenuState)時(shí),就要執(zhí)行:

      MApp_ZUI_ProcessKey(u8KeyCode);

      u8KeyCode = KEY_NULL;

      MApp_ZUI_ACT_ExecuteWndAction(EN_EXE_UPDATE_SIGNAL_INFORMAT);了;

      3.8、MApp_ZUI_ProcessKey調(diào)用MApp_ZUI_API_PostMessage(HWND_MAINFRAME, MSG_KEYDOWN, vk_code),Post Message。

      3.9、再次調(diào)用MApp_TopStateMachine 時(shí)執(zhí)行到 MApp_ZUI_MainTask 時(shí)

      switch(_eZUIState)eZUIState等于了E_ZUI_STATE_RUNNING,就會(huì)調(diào)用MApp_ZUI_API_GetMessage(&msg)收到剛才MApp_ZUI_ProcessKey發(fā)過(guò)來(lái)的Message,再通過(guò)MApp_ZUI_API_DispatchMessage(&msg);因?yàn)槲覀儎偛虐l(fā)的是key的Message所以,執(zhí)行的以下代碼: if(pMsg->message == MSG_KEYDOWN){

      //printf(“[dispmsg1]n”);

      if(_eZUIState == E_ZUI_STATE_RUNNING /*||

      _eZUIState == E_ZUI_STATE_MSGBOX_DOMODAL*/)

      {

      if(!MApp_ZUI_ACT_HandleGlobalKey((VIRTUAL_KEY_CODE)pMsg->wParam))

      {

      focus = GETWNDFOCUS();

      //printf(“/focus=%bun”,(U8)focus);

      //printf(“[dispmsg2]n”);

      if(HWND_INVALID!= focus)

      {

      pMsg->hwnd = focus;//2007/12/24: keydown message for focus

      iRet = MApp_ZUI_ACT_ExecuteWndProc(GETWNDPROCID(focus), pMsg);

      }

      }

      } #if ZUI_DBG_RECURSIVE

      _bInDispatchMessage = 0;#endif //ZUI_DBG_RECURSIVE

      return iRet;}

      3.10、由focus = GETWNDFOCUS();得到當(dāng)前Win的Focus 3.11、MApp_ZUI_ACT_ExecuteWndProc(GETWNDPROCID(focus), pMsg)兩個(gè)參數(shù)的說(shuō)明:

      GETWNDPROCID(focus),得到當(dāng)前Win的類型(有EN_ZUI_DEFAULTWINPROC、EN_ZUI_FLIPPAGE_WINPROC、EN_ZUI_EFFECT_WINPROC等類型)

      pMsg:收到的消息,在本例中收到是按鍵。

      3.12、執(zhí)行到S32 MApp_ZUI_ACT_ExecuteWndProc(U8 u8WinProcID, PMSG msg),根據(jù)傳過(guò)來(lái)的參數(shù),執(zhí)行:EFFECT_WINPROC(msg->hwnd, msg);直接調(diào)用:return DEFAULTWINPROC(hWnd, pMsg);3.13、轉(zhuǎn)到執(zhí)行:MApp_ZUI_API_DefaultWindowProc

      本例會(huì)執(zhí)行以下語(yǔ)句:

      if(GETWNDKEYEVENT(focus))

      {

      KEYEVENT *keyevent;

      keyevent = GETWNDKEYEVENT(focus);

      while(keyevent->u16VirKey!= VK_NULL)

      {

      if(keyevent->u16VirKey == pMsg->wParam)

      {

      handled = MApp_ZUI_ACT_ExecuteWndAction(keyevent->u16ExeActID);

      //we can allow multiple actions...depend on the last one action..}

      keyevent++;

      } 對(duì)這段代碼的理解,由GETWNDKEYEVENT(focus)得到當(dāng)前focus定義的keyevent,如果有定義當(dāng)前所按鍵的事件if(keyevent->u16VirKey == pMsg->wParam)則MApp_ZUI_ACT_ExecuteWndAction(keyevent->u16ExeActID);將定義要執(zhí)行的事件ID傳過(guò)去。

      For example: static KEYEVENT _ZUI_TBLSEG _MENU_PICTURE_MODE_KEY[] = { { VK_SELECT, EN_EXE_GOTO_PICTURE_MODE_PAGE}, { VK_UP, EN_EXE_NOTIFY_PARENT_KEY_UP }, { VK_DOWN, EN_EXE_NOTIFY_PARENT_KEY_DOWN }, { VK_UP, EN_EXE_EFFECT_SLIDEITEM }, { VK_DOWN, EN_EXE_EFFECT_SLIDEITEM }, { VK_LEFT , EN_EXE_EFFECT_FLIPPAGE_LEFT }, { VK_RIGHT , EN_EXE_EFFECT_FLIPPAGE_RIGHT }, { VK_NULL, 0 }, };

      3.14、執(zhí)行到:MApp_ZUI_ACT_ExecuteWndAction 本例只執(zhí)行:switch(_eActiveOSD)段。當(dāng)前是E_OSD_MAIN_MENU所以執(zhí)行MApp_ZUI_ACT_ExecuteMainMenuAction(act);3.15、以按左右鍵為例:

      switch(act)case EN_EXE_EFFECT_FLIPPAGE_LEFT: case EN_EXE_EFFECT_FLIPPAGE_RIGHT: {

      static HWND hwndTop[] =

      {

      HWND_MENU_CHANNEL_PAGE,HWND_MENU_PICTURE_PAGE,HWND_MENU_SOUND_PAGE,HWND_MENU_TIME_PAGE,HWND_MENU_OPTION_PAGE,#if SHOW_LIUBO_ADD_TEST_PAGE

      HWND_MENU_TEST_PAGE,#endif

      #if ENABLE_ATV_VCHIP//ENABLE_DTV

      HWND_MENU_LOCK_PAGE,#endif

      #if(INPUT_USB_SOURCE == 0)

      HWND_MENU_APP_PAGE,#endif

      };

      HWND hwndFocus = MApp_ZUI_API_GetFocus();

      HWND hwndEffect = hwndFocus;

      HWND hwndNext = HWND_INVALID;

      EN_FLIPPAGE dir = EN_FLIPPAGE_NONE;/******若當(dāng)前不是第0個(gè)Index page則 要找到當(dāng)前功能的首個(gè)page 即屬性為EN_ZUI_FLIPPAGE_WINPROC的page**************/

      while((hwndEffect=MApp_ZUI_API_GetParent(hwndEffect))!= HWND_MAINFRAME)

      { if(MApp_ZUI_API_GetWindowProcId(hwndEffect)== EN_ZUI_FLIPPAGE_WINPROC)

      {

      break;

      }

      } /******若當(dāng)前不是第0個(gè)Index page則 要找到當(dāng)前功能的首個(gè)page 即屬性為EN_ZUI_FLIPPAGE_WINPROC的page**************/

      if(hwndEffect == HWND_MAINFRAME)

      return TRUE;

      U32 u32Data = MApp_ZUI_API_GetWindowData(hwndEffect);

      if(u32Data == 0)

      return TRUE;

      U32 i;

      for(i=0;i

      {

      if(hwndTop[i] == hwndEffect)

      break;

      }

      if(i >= COUNTOF(hwndTop))

      return TRUE;

      if(act == EN_EXE_EFFECT_FLIPPAGE_LEFT)

      {

      if(i < 1)

      i = COUNTOF(hwndTop)-1;

      #if ENABLE_DTV

      else if((hwndTop[i]==HWND_MENU_APP_PAGE)&&(!IsDTVInUse()))

      i-=2;

      #endif

      else

      i--;

      hwndNext = hwndTop[i];

      dir = EN_FLIPPAGE_LEFT;

      }

      else if(act == EN_EXE_EFFECT_FLIPPAGE_RIGHT)

      {

      if(i+1 >= COUNTOF(hwndTop))

      i = 0;

      #if ENABLE_DTV

      else if((hwndTop[i]==HWND_MENU_OPTION_PAGE)&&(!IsDTVInUse()))

      i+=2;

      #endif

      else

      i++;

      hwndNext = hwndTop[i];

      dir = EN_FLIPPAGE_RIGHT;

      }

      HWND child, last_succ;//2008/4/12: get last successor once

      HWND listwn = hwndNext+2;

      last_succ = MApp_ZUI_API_GetLastSuccessor(listwn);

      for(child = listwn+1;child <= last_succ;child++)

      {

      if(MApp_ZUI_API_GetParent(child)!= listwn)

      continue;

      if(MApp_ZUI_ACT_QueryDynamicListItemStatus(child)!= EN_DL_STATE_NORMAL)這個(gè)if語(yǔ)句的作用是:設(shè)置下個(gè)頁(yè)面不要顯示的win。

      continue;

      else

      break;

      }

      GUI_DATA_FLIPPAGE *windata =(GUI_DATA_FLIPPAGE *)u32Data;

      windata->pVarData->hwndCurrent = hwndEffect;

      windata->pVarData->hwndNext = hwndNext;/*

      if(windata->pVarData->hwndNext == HWND_MENU_LOCK_PAGE)

      {

      // if focus on HWND_MENU_LOCK_PAGE, set focus on HWND_MENU_LOCK_TITLE

      // Press Enter to invoke input password dialog and to input password to use HWND_MENU_LOCK_PAGE's functions.child = windata->pVarData->hwndNext +1;

      } */

      #if ENABLE_DTV

      if(windata->pVarData->hwndNext == HWND_MENU_LOCK_PAGE)

      stGenSetting.g_BlockSysSetting.u8EnterLockPage = 0;

      #endif

      if(child == last_succ)

      windata->pVarData->hwndNextFocus = windata->pVarData->hwndNext+3;

      else

      windata->pVarData->hwndNextFocus = child;

      windata->pVarData->dir = dir;

      //MApp_ZUI_API_PostMessage(windata->pVarData->hwndCurrent, MSG_EFFECT, 0);MApp_ZUI_API_SendMessage(windata->pVarData->hwndCurrent, MSG_EFFECT, 0);

      MApp_ZUI_API_InvalidateWindow(HWND_MENU_MAIN_BOTTON_INFO_BAR);

      return TRUE;

      下載Mstar_6M48學(xué)習(xí)心得之關(guān)于在已有的一個(gè)OSD Win上增加了一個(gè)Pag(精選五篇)word格式文檔
      下載Mstar_6M48學(xué)習(xí)心得之關(guān)于在已有的一個(gè)OSD Win上增加了一個(gè)Pag(精選五篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦