求助: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,不知道什么原因
...全文
1730 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()中。
内容概要:论文提出了一种改进的结构可靠度分析方法,主要包含改进一次可靠度方法(iFORM)和改进二次可靠度方法(iSORM)。iFORM通过结合修正对称秩1方法与HLRF法的步长确定策略,不仅提高了收敛性,还能在不增加计算量的情况下获得功能函数的近似Hessian矩阵。iSORM则利用坐标旋转、单变量降维近似和非中心卡方分布,实现了与iFORM相同的效率但更高的精度。文中通过数值和工程算例验证了该方法在精度和效率上的优势。此外,论文还详细介绍了隐式功能函数处理技术和Hessian矩阵近似技术,并通过多个工程实例展示了方法的实际应用效果。 适合人群:具备一定数学基础和工程背景的研究人员及工程师,尤其是从事结构可靠性分析工作的专业人士。 使用场景及目标:①用于处理强非线性功能函数的结构可靠性分析;②在保证计算效率的前提下,提高二次可靠度分析的精度;③适用于需要频繁调用功能函数的隐式问题,如有限元分析中的可靠性评估。 其他说明:该方法不仅在理论上有所创,而且在实际工程应用中表现出显著的优势。它为复杂结构的可靠性分析提供了一个高效且精确的工具,特别适合在初步设计阶段快速评估结构可靠性以及最终验证阶段进行精确计算。

2,851

社区成员

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

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