请教一个触屏事件在窗口->容器->控件中传递的问题
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的话,事件就会往下传递吗?