触摸事件如何分发给特定的某个widget?

wyl_stream 2009-07-10 04:16:49
我要在Brew MP的window下实现各种触摸事件,我把几个widget放到rootContainer中,然后创建了window。现在想知道的是window是如何把触摸屏事件分发到某个widget(如ButtonWidget),或者是其他的方式使widget获得事件,然后widget进行具体的处理。
我是新手,以前从未用过window和widget,所以请您说的清楚点,告诉我要用到哪几个参数和接口函数,不胜感激!
...全文
554 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyl_stream 2009-07-13
  • 打赏
  • 举报
回复
找出原因了,现在可以了。实际上它执行了if句内的内容,是我用来看效果的语句用的不对,我用的是Idisplay的清屏操作,好像window下用了这个接口没有清屏的效果,我用了drawText()也是一样。
givenup 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wyl_stream 的回复:]
可是我就是这样做的,怎么仍就没有反应呢?我用断点调试,发现它在我定义的buttonWidgetListener()里直接跳过了
if (EVT_MDL_WIDGETELEM_CLICK == pEvent->evCode)这句判断句,没有对事件进行处理,到底是哪出了问题?头痛!!!!
引用 3 楼 givenup 的回复:

不太明白事件是如何具体分发的,但是通常来讲,一个widget要对事件进行响应的话,要经过以下步骤。
(1)获取widget的viewmodel
(2)利用viewmodel注册listener
(3…
[/Quote]

ModelListener BtnListListener;
……
(void)IWIDGET_GetViewModel(pButtonWidget, &pViewModel);
(void)IMODEL_AddListenerEx(pViewModel, &BtnListListener, (PFNLISTENER)Button_OnClick);
RELEASEIF(pViewModel);

static void Button_OnClick (yourApp *pMe, ModelEvent* pEvent)
{
……
if(pEvent->evCode == EVT_MDL_WIDGETELEM_CLICK)
{
dosomething;
}
……
}

Hope Helpful!
wyl_stream 2009-07-13
  • 打赏
  • 举报
回复
可是我就是这样做的,怎么仍就没有反应呢?我用断点调试,发现它在我定义的buttonWidgetListener()里直接跳过了
if (EVT_MDL_WIDGETELEM_CLICK == pEvent->evCode)这句判断句,没有对事件进行处理,到底是哪出了问题?头痛!!!!
[Quote=引用 3 楼 givenup 的回复:]
不太明白事件是如何具体分发的,但是通常来讲,一个widget要对事件进行响应的话,要经过以下步骤。
(1)获取widget的viewmodel
(2)利用viewmodel注册listener
(3)在listener中对点击事件进行响应.
[/Quote]
发现心流 2009-07-11
  • 打赏
  • 举报
回复
最上层的可见的widget会被转发消息吧,
givenup 2009-07-11
  • 打赏
  • 举报
回复
不太明白事件是如何具体分发的,但是通常来讲,一个widget要对事件进行响应的话,要经过以下步骤。
(1)获取widget的viewmodel
(2)利用viewmodel注册listener
(3)在listener中对点击事件进行响应.
  • 打赏
  • 举报
回复
handlerDesc 相当于dispatcher,完全遵从BUIW的事件分发方式

955

社区成员

发帖
与我相关
我的任务
社区描述
为开发者提供高通丰富的解决方案及全面技术下载内容。本版以AI人工智能、WoS移动笔记本、XR、IoT 物联网、Auto 汽车、生成式AI等核心板块组成,为开发者提供一个便捷及高效的学习交流平台。
人工智能物联网机器学习 企业社区 北京·东城区
社区管理员
  • Qualcomm开发
  • csdnsqst0050
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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