ITextCtl问题:当我点击mutitap时,不弹出输入法选择菜单,请帮忙

kevincjl 2009-04-27 06:24:40
/*===========================================================================

FILE: textcontrol.c
===========================================================================*/


/*===============================================================================
INCLUDES AND VARIABLE DEFINITIONS
=============================================================================== */
#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h" // Shell interface definitions

#include "AEEMenu.h"
#include "AEEText.h"
#include "textcontrol.bid"

#include "imenuctl_res.h"
#include "AEEStdLib.h"

/*-------------------------------------------------------------------
Applet structure. All variables in here are reference via "pMe->"
-------------------------------------------------------------------*/
typedef struct _textcontrol {
AEEApplet a ; // First element of this structure must be AEEApplet
AEEDeviceInfo DeviceInfo; // always have access to the hardware device information

// add your own variables here...

IMenuCtl* pIMenuCtl;
ITextCtl* pITextCtl;
AEERect rect;

} textcontrol;

/*-------------------------------------------------------------------
Function Prototypes
-------------------------------------------------------------------*/
static boolean textcontrol_HandleEvent(textcontrol* pMe,
AEEEvent eCode, uint16 wParam,
uint32 dwParam);
boolean textcontrol_InitAppData(textcontrol* pMe);
void textcontrol_FreeAppData(textcontrol* pMe);

/*===============================================================================
FUNCTION DEFINITIONS
=============================================================================== */

/*===========================================================================
FUNCTION: AEEClsCreateInstance
===========================================================================*/
int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)
{
*ppObj = NULL;

if( ClsId == AEECLSID_TEXTCONTROL )
{
// Create the applet and make room for the applet structure
if( AEEApplet_New(sizeof(textcontrol),
ClsId,
pIShell,
po,
(IApplet**)ppObj,
(AEEHANDLER)textcontrol_HandleEvent,
(PFNFREEAPPDATA)textcontrol_FreeAppData) ) // the FreeAppData function is called after sending EVT_APP_STOP to the HandleEvent function

{
//Initialize applet data, this is called before sending EVT_APP_START
// to the HandleEvent function
if(textcontrol_InitAppData((textcontrol*)*ppObj))
{
//Data initialized successfully
return(AEE_SUCCESS);
}
else
{
//Release the applet. This will free the memory allocated for the applet when
// AEEApplet_New was called.
IAPPLET_Release((IApplet*)*ppObj);
return EFAILED;
}

} // end AEEApplet_New

}

return(EFAILED);
}


/*===========================================================================
FUNCTION SampleAppWizard_HandleEvent
===========================================================================*/
static boolean textcontrol_HandleEvent(textcontrol* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
CtlAddItem ai;
ITextCtl* ptextctl;
int res;
switch (eCode)
{
// App is told it is starting up
case EVT_APP_START:

res = ISHELL_CreateInstance(pMe->a.m_pIShell,AEECLSID_TEXTCTL,(void**)&ptextctl);
res = 7;
// Add your code here...
ISHELL_CreateInstance(pMe->a.m_pIShell,AEECLSID_SOFTKEYCTL,(void**)(&(pMe->pIMenuCtl)));
ISHELL_CreateInstance(pMe->a.m_pIShell,AEECLSID_TEXTCTL,(void**)(&(pMe->pITextCtl)));
IMENUCTL_AddItem(pMe->pIMenuCtl,IMENUCTL_RES_FILE,IDS_ENABLE_CMD,IDS_ENABLE_CMD,NULL,NULL);
pMe->rect.x=0;
pMe->rect.y=0;
pMe->rect.dx = pMe->DeviceInfo.cxScreen;
pMe->rect.dy = 50;
ITEXTCTL_SetProperties(pMe->pITextCtl,TP_FRAME);
ITEXTCTL_SetTitle(pMe->pITextCtl,IMENUCTL_RES_FILE,IDS_MENU_TITLE,NULL);
ITEXTCTL_SetRect(pMe->pITextCtl,&(pMe->rect));
ITEXTCTL_SetMaxSize(pMe->pITextCtl,15);

ITEXTCTL_SetSoftKeyMenu(pMe->pITextCtl,pMe->pIMenuCtl);

ITEXTCTL_SetInputMode(pMe->pITextCtl,AEE_TM_NUMBERS);
ITEXTCTL_SetActive(pMe->pITextCtl,TRUE);


return(TRUE);


// App is told it is exiting
case EVT_APP_STOP:
// Add your code here...

return(TRUE);


// App is being suspended
case EVT_APP_SUSPEND:
// Add your code here...

return(TRUE);


// App is being resumed
case EVT_APP_RESUME:
// Add your code here...

return(TRUE);


// An SMS message has arrived for this app. Message is in the dwParam above as (char *)
// sender simply uses this format "//BREW:ClassId:Message", example //BREW:0x00000001:Hello World
case EVT_APP_MESSAGE:
// Add your code here...

return(TRUE);

// A key was pressed. Look at the wParam above to see which key was pressed. The key
// codes are in AEEVCodes.h. Example "AVK_1" means that the "1" key was pressed.
case EVT_KEY:
// Add your code here...


if(ITEXTCTL_HandleEvent(pMe->pITextCtl,eCode,wParam,dwParam))
return TRUE;
if (IMENUCTL_HandleEvent(pMe->pIMenuCtl,eCode,wParam,dwParam))
{
return TRUE;
}




case EVT_COMMAND:
if (wParam == IDS_ENABLE_CMD)
{
res=0;
res++;
DBGPRINTF("asdfdf");
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 textcontrol_InitAppData(textcontrol* 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);

// 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 textcontrol_FreeAppData(textcontrol* 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
// }
//

}
...全文
1180 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
一只大丑鱼 2009-06-05
  • 打赏
  • 举报
回复
pIMenuCtl没有激活吧
tober 2009-06-05
  • 打赏
  • 举报
回复
我在触摸屏手机上也遇到这样的问题,请问楼主解决了吗?

1,009

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧