求助:IForm_SetHandler后无法调用新的事件处理函数

qianshanlaikan 2011-04-26 04:13:40
为Form窗口设置新的事件处理函数,但在点击上下方向按键和softkey的时候,并未进入新的事件处理函数中,谁能告诉我什么原因。
代码如下:

static void menuForm_DrawScreen(menuForm * pMe)
{
int nErr;

nErr = ISHELL_CreateInstance(pMe->piShell, AEECLSID_RootForm, (void **)&(pMe->piRootForm));
nErr = ISHELL_CreateInstance(pMe->piShell, AEECLSID_Form, (void **)&(pMe->iForm));

nErr = IRootForm_PushForm(pMe->piRootForm, pMe->iForm);

HANDLERDESC_INIT(&pMe->hd, (PFNHANDLER)mainMenuForm_HandleEvent, (void*)pMe, NULL);
IForm_SetHandler(pMe->iForm, &pMe->hd);
}

static boolean mainMenuForm_HandleEvent(menuForm* pMe, AEEEvent evt,
uint16 wParam, uint32 dwParam)
{
switch (evt) {
case EVT_KEY:
{
switch (wParam) {
// Up arrow key was pressed:
case AVK_UP:
break;
// Down arrow key was pressed:
case AVK_DOWN:
break;
case AVK_SOFT1:
//DBGPRINTF("AVK_SOFT1");
break;
case AVK_SOFT2:
IRootForm_PopForm(pMe->piRootForm);
ISHELL_CloseApplet(pMe->piShell, FALSE);
break;
case AVK_SELECT:
break;
default:
break;
}
}
break;

case EVT_COMMAND:
break;
}

return HANDLERDESC_CALL(&pMe->hd, evt, wParam, dwParam);
}

当在模拟器界面点击上下方向键和softKey键时,并未进入事件函数mainMenuForm_HandleEvent,不知道什么原因
...全文
1792 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunguohero 2011-04-30
  • 打赏
  • 举报
回复
多看看 sethandle的实现。多理解下brew的事件处理流程。非常重要的rootform,rootcontainer。
strayedbird 2011-04-28
  • 打赏
  • 举报
回复
我想eventHandler是可以接收到这些方向键事件的,但是如果对List widget事件处理,应该使用view model更方便一些,view model 可以认为是一个现成的高级的eventHandler,如
IWIDGET_GetViewModel(piw, &piListViewModel);
LISTENER_Init(&pMe->ListListener, ListListenerCallBack, pMe);
IMODEL_AddListener(piListViewModel, &pMe->ListListener);
在函数ListListenerCallBack处理EVT_MDL_FOCUS_CHANGE和EVT_MDL_FOCUS_SELECT事件。
qianshanlaikan 2011-04-26
  • 打赏
  • 举报
回复
strayedbird, 谢谢你的解答!但我还是有点不明白
我在Form中加入listWidget,然后为该Form设置eventHandler,我想点击上下方向键时,选中listWidget不同的条目,请问可以在Form的eventHandler中来处理该事件吗?

strayedbird 2011-04-26
  • 打赏
  • 举报
回复
是否处理按键事件要看form包含的widget是否需要处理这个事件,如果不需要,如仅仅包含了static widget,就不需要方向键和softkey,也就不会传入mainMenuForm_HandleEvent()中。

5,381

社区成员

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

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