📄 shiyan9.c
字号:
break;
case MY_MENU_ID_M3:
IMENUCTL_SetActive(pMe->pIMenuCtl,FALSE);
// pMe->DrawStringID = IDS_STRING_1008;
// DrawStr(pMe,pMe->DrawStringID);
my_init_menu2(pMe);
// pMe->app_status = STU_MP3LIST;
break;
case MY_MENU_ID_M4:
ISHELL_CloseApplet(pMe->pIShell,TRUE);
break;
case MY_MENU_ID_MS1:
IMENUCTL_SetActive(pMe->pIMenuCtl2,FALSE);
pMe->DrawStringID = IDS_STRING_1010;
DrawStr(pMe,pMe->DrawStringID);
break;
case MY_MENU_ID_MS2:
IMENUCTL_SetActive(pMe->pIMenuCtl2,FALSE);
pMe->DrawStringID = IDS_STRING_1011;
DrawStr(pMe,pMe->DrawStringID);
break;
case MY_MENU_ID_MS3:
IMENUCTL_SetActive(pMe->pIMenuCtl2,FALSE);
IMENUCTL_SetActive(pMe->pIMenuCtl,TRUE);
break;
}
return(TRUE);
case EVT_KEY:
// Add your code here...
if((pMe->pIMenuCtl != NULL)&&(IMENUCTL_IsActive(pMe->pIMenuCtl)))
{
IMENUCTL_HandleEvent(pMe->pIMenuCtl,eCode,wParam,dwParam);
}
if((pMe->pIMenuCtl2 != NULL)&&(IMENUCTL_IsActive(pMe->pIMenuCtl2)))
{
IMENUCTL_HandleEvent(pMe->pIMenuCtl2,eCode,wParam,dwParam);
}
switch(wParam)
{
case AVK_1:
if(IMENUCTL_IsActive(pMe->pIMenuCtl)==FALSE)
IMENUCTL_SetActive(pMe->pIMenuCtl,TRUE);
DBGPRINTF("current status is MainMenu");
break;
if(IMENUCTL_IsActive(pMe->pIMenuCtl2)==FALSE)
IMENUCTL_SetActive(pMe->pIMenuCtl2,TRUE);
break;
}
return(TRUE);
// If nothing fits up to this point then we'll just break out
default:
break;
}
return FALSE;
}
// this function is called when your application is starting up
boolean shiyan9_InitAppData(shiyan9* pMe)
{
// Get the device information for this handset.
// Reference all the data by looking at the pMe->DeviceInfo structure
// Check the API reference guide for all the handy device info you can get
pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);
// The display and shell interfaces are always created by
// default, so we'll asign them so that you can access
// them via the standard "pMe->" without the "a."
pMe->pIDisplay = pMe->a.m_pIDisplay;
pMe->pIShell = pMe->a.m_pIShell;
// Insert your code here for initializing or allocating resources...
// if there have been no failures up to this point then return success
return TRUE;
}
// this function is called when your application is exiting
void shiyan9_FreeAppData(shiyan9* pMe)
{
// insert your code here for freeing any resources you have allocated...
// example to use for releasing each interface:
if ( pMe->pIMenuCtl != NULL ) // check for NULL first
{
IMENUCTL_Release(pMe->pIMenuCtl); // release the interface
pMe->pIMenuCtl = NULL; // set to NULL so no problems trying to free later
}
//
if ( pMe->pIMenuCtl2 != NULL ) // check for NULL first
{
IMENUCTL_Release(pMe->pIMenuCtl2); // release the interface
pMe->pIMenuCtl2 = NULL; // set to NULL so no problems trying to free later
}
}
boolean my_init_menu(shiyan9* pMe)
{
AEERect rect; //定义菜单显示的区域
CtlAddItem ai1,ai2; //定义 带图标菜单的结构
rect.x = 0;
rect.y = 0;
rect.dx = pMe->DeviceInfo.cxScreen; //全屏显示菜单
rect.dy = pMe->DeviceInfo.cyScreen;
ISHELL_CreateInstance(pMe->pIShell,AEECLSID_MENUCTL,&pMe->pIMenuCtl); //创建菜单接口实例
//-------使用IMENUCTL_AddItem()函数添加两个不带图标的菜单----------------
IMENUCTL_AddItem(pMe->pIMenuCtl,SHIYAN9_RES_FILE,IDS_STRING_1001,MY_MENU_ID_M1,NULL,0);
IMENUCTL_AddItem(pMe->pIMenuCtl,SHIYAN9_RES_FILE,IDS_STRING_1002,MY_MENU_ID_M2,NULL,0);
//------定义一个带图标菜单-------
ai1.dwData =213;
ai1.pszResImage = SHIYAN9_RES_FILE; //包含有菜单图标的资源文件名
ai1.pszResText = SHIYAN9_RES_FILE; //包含有菜单文本字符串的资源文件名
ai1.wItemID = MY_MENU_ID_M3; //该菜单项的ID
ai1.wText = IDS_STRING_1003; //资源文件中菜单文本字符串的ID
ai1.wImage = IDI_OBJECT_5001; //资源文件中菜单图标的ID
ai1.pText = NULL;
ai1.pImage = NULL;
ai1.wFont = 0; //字体
//------定义一个带图标菜单-------
ai2.dwData =213;
ai2.pszResImage = SHIYAN9_RES_FILE; //包含有菜单图标的资源文件名
ai2.pszResText = SHIYAN9_RES_FILE; //包含有菜单文本字符串的资源文件名
ai2.wItemID = MY_MENU_ID_M4; //该菜单项的ID
ai2.wText = IDS_STRING_1004; //资源文件中菜单文本字符串的ID
ai2.wImage = IDI_OBJECT_5002; //资源文件中菜单图标的ID
ai2.pText = NULL;
ai2.pImage = NULL;
ai2.wFont = 0; //字体
//-------使用IMENUCTL_AddItemEx()函数添加1个带图标的菜单----------------
if (IMENUCTL_AddItemEx(pMe->pIMenuCtl,&ai1) == TRUE)
{
DBGPRINTF("icon menu item add success"); //如果菜单项添加成功
}else
{
DBGPRINTF("icon menu item add faild");
}
//-------使用IMENUCTL_AddItemEx()函数添加1个带图标的菜单----------------
if (IMENUCTL_AddItemEx(pMe->pIMenuCtl,&ai2) == TRUE)
{
DBGPRINTF("icon menu item add success"); //如果菜单项添加成功
}
else
{
DBGPRINTF("icon menu item add faild");
}
//-------设置菜单的标题----------------
IMENUCTL_SetTitle(pMe->pIMenuCtl,SHIYAN9_RES_FILE,IDS_STRING_1005,NULL);
IMENUCTL_EnableCommand(pMe->pIMenuCtl,TRUE);
IMENUCTL_SetRect(pMe->pIMenuCtl,&rect);
IMENUCTL_SetActive(pMe->pIMenuCtl,TRUE); //激活
return TRUE;
}
boolean my_init_menu2(shiyan9* pMe)
{
AEERect rect; //定义菜单显示的区域
rect.x = 0;
rect.y = 0;
rect.dx = pMe->DeviceInfo.cxScreen; //全屏显示菜单
rect.dy = pMe->DeviceInfo.cyScreen;
ISHELL_CreateInstance(pMe->pIShell,AEECLSID_MENUCTL,&pMe->pIMenuCtl2); //创建菜单接口实例
//-------使用IMENUCTL_AddItem()函数添加3个不带图标的菜单----------------
IMENUCTL_AddItem(pMe->pIMenuCtl2,SHIYAN9_RES_FILE,IDS_STRING_1010,MY_MENU_ID_MS1,NULL,0);
IMENUCTL_AddItem(pMe->pIMenuCtl2,SHIYAN9_RES_FILE,IDS_STRING_1011,MY_MENU_ID_MS2,NULL,0);
IMENUCTL_AddItem(pMe->pIMenuCtl2,SHIYAN9_RES_FILE,IDS_STRING_1012,MY_MENU_ID_MS3,NULL,0);
//-------设置菜单的标题----------------
IMENUCTL_SetTitle(pMe->pIMenuCtl2,SHIYAN9_RES_FILE,IDS_STRING_1009,NULL);
IMENUCTL_EnableCommand(pMe->pIMenuCtl2,TRUE);
IMENUCTL_SetRect(pMe->pIMenuCtl2,&rect);
IMENUCTL_SetActive(pMe->pIMenuCtl2,TRUE); //激活
return TRUE;
}
//=======在屏幕中间显示资源文件中ID为DrawStringID的字符串================================
void DrawStr(shiyan9* pMe, uint16 DrawStringID)
{
AECHAR* pBuffer;
uint32 bufSize;
//-------获取资源文件MYMENU_RES_FILE中指定ID字符串资源的大小
ISHELL_GetResSize(pMe->pIShell,SHIYAN9_RES_FILE,DrawStringID,RESTYPE_STRING,&bufSize);
//--为该字符串分配内存空间 pBuffer--
pBuffer = (AECHAR*)MALLOC(bufSize);
IDISPLAY_ClearScreen(pMe->pIDisplay);
//-- 将字符串从资源文件MYMENU_RES_FILE中加在到pBuffer中
ISHELL_LoadResString(pMe->pIShell,
SHIYAN9_RES_FILE,
DrawStringID,
pBuffer,
bufSize);
//-- 显示该字符串 --
IDISPLAY_DrawText(pMe->pIDisplay,
AEE_FONT_NORMAL,
pBuffer,
-1,50,50,
NULL,
IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE);
IDISPLAY_Update(pMe->pIDisplay);
//-- 显示完后,释放pBuffer--
FREE(pBuffer);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -