请教一个触屏事件在窗口->容器->控件中传递的问题

donghan12yue 2009-07-30 10:52:21
void fun(CTest *pMe)
{
WExtent we;
WidgetPos wpos;

ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_LISTFORM, (void**)&pMe->m_form); //窗口
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_STATICWIDGET, (void**)&pMe->m_wdg); //控件
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_XYCONTAINER, (void**)&pMe->m_cnt); //容器
IXYCONTAINER_QueryInterface(pMe->m_cnt, AEEIID_WIDGET, (void **)&pMe->m_cntWdg);

HANDLERDESC_Init(&pMe->m_formHandler, CTEST_FormEvent, pMe, NULL);
IFORM_SetHandler(pMe->m_form, &pMe->m_formHandler);

HANDLERDESC_Init(&pMe->m_cntHandler, CTEST_CntEvent, pMe, NULL);
IWIDGET_SetHandler(pMe->m_cntWdg, &pMe->m_cntHandler);

HANDLERDESC_Init(&pMe->m_wdgHandler, CTEST_WdgEvent, pMe, NULL);
IWIDGET_SetHandler(pMe->m_wdg, &pMe->m_wdgHandler);

we.height = 100;
we.width = 100;
IWIDGET_SetExtent(pMe->m_wdg, &we);
IWIDGET_SetBorderWidth(pMe->m_wdg, 1);
IWIDGET_SetBorderColor(pMe->m_wdg, RGB_BLACK);
wpos.x = 20;
wpos.y = 20;
wpos.bVisible = TRUE;
IXYCONTAINER_Insert(pMe->m_cnt, pMe->m_wdg, WIDGET_ZNORMAL, &wpos);

IFORM_SetWidget(pMe->m_form, WID_FORM, pMe->m_cntWdg);
IROOTFORM_PushForm(pMe->m_rootForm, pMe->m_form);
}

boolean CTEST_FormEvent(void *po, AEEEvent evt,
uint16 wParam, uint32 dwParam)
{
CTest *pMe = (CTest *)po;
switch(evt)
{
case EVT_POINTER_DOWN:
return FALSE;

case EVT_POINTER_UP:
return FALSE;

case EVT_KEY:
return FALSE;
}

return HANDLERDESC_Call(&pMe->m_formHandler, evt, wParam, dwParam);
}

boolean CTEST_CntEvent(void *po, AEEEvent evt,
uint16 wParam, uint32 dwParam)
{
CTest *pMe = (CTest *)po;
switch(evt)
{
case EVT_POINTER_DOWN:
return FALSE;

case EVT_POINTER_UP:
return FALSE;

case EVT_KEY:
return FALSE;
}

return HANDLERDESC_Call(&pMe->m_cntHandler, evt, wParam, dwParam);
}

boolean CTEST_WdgEvent(void *po, AEEEvent evt,
uint16 wParam, uint32 dwParam)
{
CTest *pMe = (CTest *)po;
switch(evt)
{
case EVT_POINTER_DOWN:
return FALSE;

case EVT_POINTER_UP:
return FALSE;

case EVT_KEY:
return FALSE;
}

return HANDLERDESC_Call(&pMe->m_wdgHandler, evt, wParam, dwParam);
}

为什么触屏的时候,只有窗口函数捕获到了触屏事件,而其他两个函数都没捕获到。不是说返回FALSE的话,事件就会往下传递吗?
...全文
1797 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyymq 2009-08-04
  • 打赏
  • 举报
回复
楼上的,你不来上班,在家干嘛?
muwesky 2009-08-04
  • 打赏
  • 举报
回复
学习中。。。。。
givenup 2009-07-31
  • 打赏
  • 举报
回复
staticwidget不能接受焦点事件,所以应该不会收到EVT_POINTER_* 事件,你换成listwidget试一下!
xia56108430 2009-07-30
  • 打赏
  • 举报
回复
学习下,
怎么没看到过WExtent,WidgetPos,IWIDGET_SetHandler?
是你自己定义的吗?
donghan12yue 2009-07-30
  • 打赏
  • 举报
回复
汗,API帮助文档开起来看下,里面有

3,145

社区成员

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

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